diff --git a/src/p_mobj.c b/src/p_mobj.c
index e7ec2f8b8af9ab784f9ffb529598afb6d16b2178..6a3ac9ee304001f02ac01157f4c9e4e4e384b689 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -7685,6 +7685,10 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type)
 
 		if (mobj->type == MT_UNIDUS)
 			mobj->z -= FixedMul(mobj->info->mass, mobj->scale);
+
+		// defaults onground
+		if (mobj->z + mobj->height == mobj->ceilingz)
+			mobj->eflags |= MFE_ONGROUND;
 	}
 	else
 		mobj->z = z;