diff --git a/src/p_user.c b/src/p_user.c
index 05c1595cbacd3469e6be14cce9c44c44aac7100d..630c79b02511924a4a400b49c3b70f961c2f1b93 100644
--- a/src/p_user.c
+++ b/src/p_user.c
@@ -1401,6 +1401,17 @@ void P_SpawnShieldOrb(player_t *player)
 		P_SetTarget(&ov->target, shieldobj);
 		P_SetMobjState(ov, shieldobj->info->missilestate);
 	}
+	if (player->powers[pw_shield] & SH_FORCE)
+	{
+		//Copy and pasted from P_ShieldLook in p_mobj.c
+		if (shieldobj->movecount < 1)
+		{
+			if (shieldobj->info->painstate)
+				P_SetMobjState(shieldobj,shieldobj->info->painstate);
+			else
+				shieldobj->flags2 |= MF2_SHADOW;
+		}
+	}
 }
 
 //