diff --git a/src/p_polyobj.c b/src/p_polyobj.c
index 4b9538951006f6b516ab69dd50bf194f6cf6eb9c..b1da5146239fb669c4b6afdcc64ca713989e732c 100644
--- a/src/p_polyobj.c
+++ b/src/p_polyobj.c
@@ -1670,7 +1670,7 @@ void T_PolyObjWaypoint(polywaypoint_t *th)
 					th->stophere = true;
 				}
 
-				waypoint = (th->direction == -1) ? P_GetFirstWaypoint(th->sequence) : P_GetLastWaypoint(th->sequence);
+				waypoint = (th->direction == -1) ? P_GetLastWaypoint(th->sequence) : P_GetFirstWaypoint(th->sequence);
 			}
 			else if (!waypoint && th->comeback) // Come back to the start
 			{