--- a/liolib-copy.c
+++ b/liolib-copy.c
@@ -312,8 +312,7 @@ static int io_fclose(lua_State *L)
 FILE *liolib_copy_tofile(lua_State *L, int index)
 {
     int eq;
-    if (lua_type(L, index) != LUA_TTABLE) return NULL;
-    lua_getmetatable(L, index);
+    if (0 == lua_getmetatable(L, index)) return NULL;
     luaL_getmetatable(L, LUA_FILEHANDLE);
     eq = lua_equal(L, -2, -1);
     lua_pop(L, 2);