diff --git a/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidget.ui b/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidget.ui
index a23cb5332f54d5107e7aa15a38e1577ad374c36c..5124859e14bc8895fbfec5e8b7e5cd79baaae609 100644
--- a/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidget.ui
+++ b/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidget.ui
@@ -95,6 +95,13 @@
              </property>
             </widget>
            </item>
+           <item>
+            <widget class="QCheckBox" name="checkBoxWPReverse">
+             <property name="text">
+              <string>Reverse list</string>
+             </property>
+            </widget>
+           </item>
            <item>
             <spacer name="horizontalSpacer">
              <property name="orientation">
diff --git a/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidgetController.cpp b/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidgetController.cpp
index 09683de6a49e6a0948fd79532b170518751ed671..93bb8b33a3d60d24e224475cf21ac35e15f881f0 100644
--- a/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidgetController.cpp
+++ b/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidgetController.cpp
@@ -25,6 +25,7 @@
 
 #include <VirtualRobot/Util/json.h>
 
+#include <ArmarXCore/util/CPPUtility/container.h>
 #include <RobotAPI/libraries/core/remoterobot/RemoteRobot.h>
 
 #include "CartesianWaypointControlGuiWidgetController.h"
@@ -154,7 +155,7 @@ namespace armarx
             _controller->activateController();
             ARMARX_IMPORTANT << "trigger execution of " << _lastParsedWPs.size()
                              << " waypoints on " << _controllerName;
-            _controller->setWaypoints(_lastParsedWPs);
+            _controller->setWaypoints(_ui.checkBoxWPReverse->isChecked() ? reverse(_lastParsedWPs) : _lastParsedWPs);
         }
     }