diff --git a/source/texk/web2c/luatexdir/lua/lepdflib.cc b/source/texk/web2c/luatexdir/lua/lepdflib.cc
index a537e0a7c03909974d3f2141797656d3bedb5005..0bc34909f9ef6e1b5ed83bba7761096f7513bf53 100644
--- a/source/texk/web2c/luatexdir/lua/lepdflib.cc
+++ b/source/texk/web2c/luatexdir/lua/lepdflib.cc
@@ -1794,7 +1794,11 @@ static int m_Object_getNum(lua_State * L)
     uin = (udstruct *) luaL_checkudata(L, 1, M_Object);
     if (uin->pd != NULL && uin->pd->pc != uin->pc)
         pdfdoc_changed_error(L);
-    if (((Object *) uin->d)->isNum())
+    if (((Object *) uin->d)->isInt())
+        lua_pushinteger(L, ((Object *) uin->d)->getInt());
+    else if (((Object *) uin->d)->isReal())
+        lua_pushinteger(L, ((Object *) uin->d)->getReal());
+    else if (((Object *) uin->d)->isNum()) /* redundant */
         lua_pushnumber(L, ((Object *) uin->d)->getNum()); /* integer or float */
     else
         lua_pushnil(L);