diff --git a/src/p_mobj.c b/src/p_mobj.c
index c729b7aa79d5ac22250513bd03a6fd5baedbff2d..520f9ad07d45a1da1f4b102e9ad7886029861862 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -2541,6 +2541,9 @@ boolean P_CheckDeathPitCollide(mobj_t *mo)
 	I_Assert(mo != NULL);
 	I_Assert(!P_MobjWasRemoved(mo));
 
+	if (mo->player && mo->player->pflags & PF_GODMODE)
+		return false;
+
 	if (((mo->z <= mo->subsector->sector->floorheight
 		&& !(mo->eflags & MFE_VERTICALFLIP) && (mo->subsector->sector->flags & SF_FLIPSPECIAL_FLOOR))
 	|| (mo->z + mo->height >= mo->subsector->sector->ceilingheight
diff --git a/src/st_stuff.c b/src/st_stuff.c
index 315dcd068d5c2bcbccec47a8d9acdf80a545dea8..4af3199a19d231216572b95c0ace17c4b4760a63 100644
--- a/src/st_stuff.c
+++ b/src/st_stuff.c
@@ -1490,25 +1490,25 @@ static inline void ST_drawRaceHUD(void)
 	{
 		INT32 height = (BASEVIDHEIGHT/2);
 		INT32 bounce = (leveltime % TICRATE);
-		patch_t **racenum;
+		patch_t *racenum;
 		switch (leveltime/TICRATE)
 		{
 			case 1:
-				racenum = &race3;
+				racenum = race3;
 				break;
 			case 2:
-				racenum = &race2;
+				racenum = race2;
 				break;
 			case 3:
-				racenum = &race1;
+				racenum = race1;
 				break;
 			default:
-				racenum = &racego;
+				racenum = racego;
 				break;
 		}
 		if (bounce < 3)
 			height -= (2 - bounce);
-		V_DrawScaledPatch(SCX((BASEVIDWIDTH - SHORT((*racenum)->width))/2), (INT32)(SCY(height)), V_NOSCALESTART, *racenum);
+		V_DrawScaledPatch(SCX((BASEVIDWIDTH - SHORT(racenum->width))/2), (INT32)(SCY(height)), V_NOSCALESTART, racenum);
 	}
 
 	if (circuitmap)