diff --git a/src/lua_maplib.c b/src/lua_maplib.c
index 975ea1cb177b3f72446440a67c2a9d89ac2916bd..2ccb3b5f7d0f054e9197f66c261076cd002b03f9 100644
--- a/src/lua_maplib.c
+++ b/src/lua_maplib.c
@@ -1374,6 +1374,8 @@ static int slope_set(lua_State *L)
 	}
 	case slope_xydirection: // xydirection
 		slope->xydirection = luaL_checkangle(L, 3);
+		slope->d.x = -FINECOSINE((slope->xydirection>>ANGLETOFINESHIFT) & FINEMASK);
+		slope->d.y = -FINESINE((slope->xydirection>>ANGLETOFINESHIFT) & FINEMASK);
 		P_CalculateSlopeNormal(slope);
 		break;
 	}