diff --git a/src/lua_baselib.c b/src/lua_baselib.c
index ccdc8baa065c607124b50a14198d64e67b2a6653..b5b6103394c8f995790d85f44144e21ca3acbe26 100644
--- a/src/lua_baselib.c
+++ b/src/lua_baselib.c
@@ -644,7 +644,7 @@ static int lib_pSpawnMobjFromMobj(lua_State *L)
 		return LUA_ErrInvalid(L, "mobj_t");
 	if (type >= NUMMOBJTYPES)
 		return luaL_error(L, "mobj type %d out of range (0 - %d)", type, NUMMOBJTYPES-1);
-	LUA_PushUserdata(L, P_SpawnMobjFromMobj(actor, x, y, z, type, NULL), META_MOBJ);
+	LUA_PushUserdata(L, P_SpawnMobjFromMobj(actor, x, y, z, type), META_MOBJ);
 	return 1;
 }
 
diff --git a/src/p_local.h b/src/p_local.h
index eeee1ca3634eea41c09d3a9acb1a9519a10c26d5..8bdc89841fd28e60623ea00cdf575e48e3d87065 100644
--- a/src/p_local.h
+++ b/src/p_local.h
@@ -329,7 +329,7 @@ boolean P_CheckDeathPitCollide(mobj_t *mo);
 boolean P_CheckSolidLava(ffloor_t *rover);
 void P_AdjustMobjFloorZ_FFloors(mobj_t *mo, sector_t *sector, UINT8 motype);
 
-mobj_t *P_SpawnMobjFromMobj(mobj_t *mobj, fixed_t xofs, fixed_t yofs, fixed_t zofs, mobjtype_t type, ...);
+mobj_t *P_SpawnMobjFromMobj(mobj_t *mobj, fixed_t xofs, fixed_t yofs, fixed_t zofs, mobjtype_t type);
 
 mobj_t *P_SpawnMissile(mobj_t *source, mobj_t *dest, mobjtype_t type);
 mobj_t *P_SpawnXYZMissile(mobj_t *source, mobj_t *dest, mobjtype_t type, fixed_t x, fixed_t y, fixed_t z);
diff --git a/src/p_mobj.c b/src/p_mobj.c
index 55b3184069bfa3ec743b6638c53df6e1a2bf345c..aa5949c2f907904b5cb7c00a4fee77064bf7d166 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -14410,7 +14410,7 @@ void P_FlashPal(player_t *pl, UINT16 type, UINT16 duration)
 // Spawns an object with offsets relative to the position of another object.
 // Scale, gravity flip, etc. is taken into account automatically.
 //
-mobj_t *P_SpawnMobjFromMobj(mobj_t *mobj, fixed_t xofs, fixed_t yofs, fixed_t zofs, mobjtype_t type, ...)
+mobj_t *P_SpawnMobjFromMobj(mobj_t *mobj, fixed_t xofs, fixed_t yofs, fixed_t zofs, mobjtype_t type)
 {
 	va_list args;
 	mobj_t *newmobj;
@@ -14419,19 +14419,7 @@ mobj_t *P_SpawnMobjFromMobj(mobj_t *mobj, fixed_t xofs, fixed_t yofs, fixed_t zo
 	yofs = FixedMul(yofs, mobj->scale);
 	zofs = FixedMul(zofs, mobj->scale);
 
-	if (type == MT_PLAYER)
-	{
-		player_t *player;
-		// MT_PLAYER requires an additional parameter for the player, so pass that forth.
-		va_start(args, type);
-		player = va_arg(args, player_t *);
-		va_end(args);
-		newmobj = P_SpawnMobj(mobj->x + xofs, mobj->y + yofs, mobj->z + zofs, type, player);
-	}
-	else
-	{
-		newmobj = P_SpawnMobj(mobj->x + xofs, mobj->y + yofs, mobj->z + zofs, type);
-	}
+	newmobj = P_SpawnMobj(mobj->x + xofs, mobj->y + yofs, mobj->z + zofs, type, NULL);
 
 	if (!newmobj)
 		return NULL;