diff -r e6ef15c7bf55 src/g_shared/a_randomspawner.cpp
--- a/src/g_shared/a_randomspawner.cpp	Thu Jan 01 18:55:07 2015 +0100
+++ b/src/g_shared/a_randomspawner.cpp	Thu Jan 01 19:19:18 2015 +0100
@@ -113,6 +113,7 @@
 	{
 		AActor * newmobj = NULL;
 		bool boss = false;
+		Super::PostBeginPlay();
 		if (Species == NAME_None) { Destroy(); return; }
 		const PClass * cls = PClass::FindClass(Species);
 		if (this->flags & MF_MISSILE && target && target->target) // Attempting to spawn a missile.
diff -r e6ef15c7bf55 src/p_mobj.cpp
--- a/src/p_mobj.cpp	Thu Jan 01 18:55:07 2015 +0100
+++ b/src/p_mobj.cpp	Thu Jan 01 19:19:18 2015 +0100
@@ -4859,10 +4859,11 @@
 			TEAM_ExecuteReturnRoutine( teams.Size( ), NULL );
 	}
 
-	if (screen != NULL)
-	{
-		screen->StateChanged(actor);
-	}
+	// [BB] Moved to backport GZDoom revision 1302.
+	//if (screen != NULL)
+	//{
+	//	screen->StateChanged(actor);
+	//}
 
 	g_SpawnCycles.Unclock();
 	return actor;
@@ -4951,6 +4952,11 @@
 
 void AActor::PostBeginPlay ()
 {
+	// [BB] Backported from GZDoom revision 1302.
+	if (screen != NULL)
+	{
+		screen->StateChanged(this);
+	}
 	PrevAngle = angle;
 }
 
diff -r e6ef15c7bf55 src/p_user.cpp
--- a/src/p_user.cpp	Thu Jan 01 18:55:07 2015 +0100
+++ b/src/p_user.cpp	Thu Jan 01 19:19:18 2015 +0100
@@ -567,6 +567,7 @@
 
 void APlayerPawn::PostBeginPlay()
 {
+	Super::PostBeginPlay();
 	SetupWeaponSlots();
 }
 
