diff --git a/src/lua_skinlib.c b/src/lua_skinlib.c
index 1cd9df6310319add6a28dd0728a8933ce3f554a8..d4d7bae1274b15c97df5e4ab3c90b97616c6b89b 100644
--- a/src/lua_skinlib.c
+++ b/src/lua_skinlib.c
@@ -217,7 +217,7 @@ static int skin_get(lua_State *L)
 		lua_pushinteger(L, skin->availability);
 		break;
 	case skin_sprites:
-		LUA_PushUserdata(L, skin->sprites, META_SKINSPRITES);
+		LUA_PushLightUserdata(L, skin->sprites, META_SKINSPRITES);
 		break;	
 	}
 	return 1;
@@ -340,7 +340,7 @@ static const char *const sprites_opt[] = {
 // skin.sprites[i] -> sprites[i]
 static int lib_getSkinSprite(lua_State *L)
 {
-	spritedef_t *sprites = *((spritedef_t **)luaL_checkudata(L, 1, META_SKINSPRITES));
+	spritedef_t *sprites = (spritedef_t *)luaL_checkudata(L, 1, META_SKINSPRITES);
 	playersprite_t i = luaL_checkinteger(L, 2);
 
 	if (i < 0 || i >= NUMPLAYERSPRITES*2)