diff --git a/src/r_main.c b/src/r_main.c
index 39231981c566d31ea282362687efbafe3302840e..dea402eec87b2bef5282c93624b80e0e68474188 100644
--- a/src/r_main.c
+++ b/src/r_main.c
@@ -941,6 +941,11 @@ void R_ExecuteSetViewSize(void)
 	if (splitscreen == 1) // Splitscreen FOV should be adjusted to maintain expected vertical view
 		fovtan = 17*fovtan/10;
 
+	// Adjust field of view to the aspect ratio
+	fixed_t resmul = FixedDiv(vid.width * FRACUNIT, vid.height * FRACUNIT);
+	if (resmul > FRACUNIT)
+		fovtan = FixedMul(fovtan, resmul);
+
 	projection = projectiony = FixedDiv(centerxfrac, fovtan);
 
 	R_InitViewBuffer(scaledviewwidth, viewheight);