diff --git a/src/hardware/hw_main.c b/src/hardware/hw_main.c
index e266ee06c32a7003f2a876ce369ba42e1c59eb63..bcb0afa6e30a03cdaa8e0a547245af2ac8999e8b 100644
--- a/src/hardware/hw_main.c
+++ b/src/hardware/hw_main.c
@@ -652,10 +652,14 @@ static void HWR_RenderPlane(subsector_t *subsector, extrasubsector_t *xsub, bool
 		}\
 \
 		vert->x = (vx);\
+		vert->y = height;\
 		vert->z = (vy);\
 \
-		fixedheight = P_GetZAt(slope, FLOAT_TO_FIXED((vx)), FLOAT_TO_FIXED((vy)), height);\
-		vert->y = FIXED_TO_FLOAT(fixedheight);\
+		if (slope)\
+		{\
+			fixedheight = P_GetSlopeZAt(slope, FLOAT_TO_FIXED((vx)), FLOAT_TO_FIXED((vy)));\
+			vert->y = FIXED_TO_FLOAT(fixedheight);\
+		}\
 }
 
 	for (i = 0, v3d = planeVerts; i < nrPlaneVerts; i++,v3d++,pv++)