diff --git a/src/hardware/hw_main.c b/src/hardware/hw_main.c
index e1b5d23ff321b4c8a6b6cab0b81c21eb03f6c750..cf78c0cc0bfdffe3b93b25a2ce6cc281ec855323 100644
--- a/src/hardware/hw_main.c
+++ b/src/hardware/hw_main.c
@@ -5969,8 +5969,12 @@ static void HWR_DrawSkyBackground(player_t *player)
 		dometransform.scalez = 1;
 		dometransform.fovxangle = fpov; // Tails
 		dometransform.fovyangle = fpov; // Tails
-		dometransform.roll = (player->viewrollangle != 0);
-		dometransform.rollangle = FIXED_TO_FLOAT(AngleFixed(player->viewrollangle));
+		if (player->viewrollangle != 0)
+		{
+			fixed_t rol = AngleFixed(player->viewrollangle);
+			dometransform.rollangle = FIXED_TO_FLOAT(rol);
+			dometransform.roll = true;
+		}
 		dometransform.splitscreen = splitscreen;
 
 		HWR_GetTexture(texturetranslation[skytexture]);
@@ -6194,8 +6198,12 @@ void HWR_RenderSkyboxView(INT32 viewnumber, player_t *player)
 	atransform.scalez = 1;
 	atransform.fovxangle = fpov; // Tails
 	atransform.fovyangle = fpov; // Tails
-	atransform.roll = (player->viewrollangle != 0);
-	atransform.rollangle = FIXED_TO_FLOAT(AngleFixed(player->viewrollangle));
+	if (player->viewrollangle != 0)
+	{
+		fixed_t rol = AngleFixed(player->viewrollangle);
+		atransform.rollangle = FIXED_TO_FLOAT(rol);
+		atransform.roll = true;
+	}
 	atransform.splitscreen = splitscreen;
 
 	gr_fovlud = (float)(1.0l/tan((double)(fpov*M_PIl/360l)));
@@ -6416,8 +6424,12 @@ void HWR_RenderPlayerView(INT32 viewnumber, player_t *player)
 	atransform.scalez = 1;
 	atransform.fovxangle = fpov; // Tails
 	atransform.fovyangle = fpov; // Tails
-	atransform.roll = (player->viewrollangle != 0);
-	atransform.rollangle = FIXED_TO_FLOAT(AngleFixed(player->viewrollangle));
+	if (player->viewrollangle != 0)
+	{
+		fixed_t rol = AngleFixed(player->viewrollangle);
+		atransform.rollangle = FIXED_TO_FLOAT(rol);
+		atransform.roll = true;
+	}
 	atransform.splitscreen = splitscreen;
 
 	gr_fovlud = (float)(1.0l/tan((double)(fpov*M_PIl/360l)));
diff --git a/src/r_main.c b/src/r_main.c
index 689f18f2b6640b4844d5657aa15ecd5acdac722a..27c444d887bd272851de0a80fbf2d74f2fa7868f 100644
--- a/src/r_main.c
+++ b/src/r_main.c
@@ -560,7 +560,7 @@ static struct {
 
 	fixed_t zoomneeded;
 	INT32 *scrmap;
-	size_t scrmapsize;
+	INT32 scrmapsize;
 	boolean use;
 } viewmorph = {
 	0,
@@ -578,7 +578,7 @@ void R_CheckViewMorph(void)
 	float zoomfactor, rollcos, rollsin;
 	float x1, y1, x2, y2;
 	fixed_t temp;
-	size_t end, vx, vy, pos, usedpos;
+	INT32 end, vx, vy, pos, usedpos;
 	INT32 usedx, usedy, halfwidth = vid.width/2, halfheight = vid.height/2;
 #ifdef WOUGHMP_WOUGHMP
 	float fisheyemap[MAXVIDWIDTH/2 + 1];