diff --git a/src/p_slopes.c b/src/p_slopes.c
index c2bacad9ed02ede75af92692d7b5e9ad0e6fb02d..ce276a6729a6bea818328821430366ffa920b18c 100644
--- a/src/p_slopes.c
+++ b/src/p_slopes.c
@@ -181,8 +181,8 @@ void T_DynamicSlopeLine (dynlineplanethink_t* th)
 {
 	pslope_t* slope = th->slope;
 	line_t* srcline = th->sourceline;
-
-	fixed_t zdelta;
+	
+	fixed_t zdelta, oldoz = slope->o.z;
 
 	switch(th->type) {
 	case DP_FRONTFLOOR:
@@ -209,7 +209,7 @@ void T_DynamicSlopeLine (dynlineplanethink_t* th)
 		return;
 	}
 
-	if (slope->zdelta != FixedDiv(zdelta, th->extent)) {
+	if (slope->zdelta != FixedDiv(zdelta, th->extent) || oldoz != slope->o.z) {
 		slope->zdelta = FixedDiv(zdelta, th->extent);
 		slope->zangle = R_PointToAngle2(0, 0, th->extent, -zdelta);
 		slope->moved = true;