diff --git a/source/RobotAPI/components/InteractiveMemoryEditor/Editor.cpp b/source/RobotAPI/components/InteractiveMemoryEditor/Editor.cpp
index 9ad32d663a64a86b41022dbf22b45837979820be..7b8d502180a71e9325107caa16571b85fa0427e4 100644
--- a/source/RobotAPI/components/InteractiveMemoryEditor/Editor.cpp
+++ b/source/RobotAPI/components/InteractiveMemoryEditor/Editor.cpp
@@ -33,6 +33,13 @@ namespace armarx
             isUpdateRequired = false;
         }
 
+        if (isResetRequired)
+        {
+            reset();
+
+            isResetRequired = false;
+        }
+
         if (isMemoryVizRequired)
         {
             visualizeMemory();
@@ -73,6 +80,13 @@ namespace armarx
         return newRequestedPoses;
     }
 
+    void Editor::reset()
+    {
+        changes.clear();
+
+        isMemoryVizRequired = true;
+    }
+
     void Editor::commit()
     {
         changes.moveNewObjectsTo(storedPoses);
@@ -182,6 +196,10 @@ namespace armarx
             {
                 isUpdateRequired = true;
             })
+            .onContextMenu(description.resetAllIndex, [&]
+            {
+                isResetRequired = true;
+            })
             .onTransformEnd([&](const Eigen::Matrix4f& transform)
             {
                 changes.moveObject(objectPose, transform);
@@ -293,7 +311,10 @@ namespace armarx
         description.commitIndex = currentIndex++;
 
         description.options.emplace_back("Update Unchanged");
-        description.updateIndex = currentIndex; // ++
+        description.updateIndex = currentIndex++;
+
+        description.options.emplace_back("Reset All");
+        description.resetAllIndex = currentIndex; // ++
 
         return description;
     }
diff --git a/source/RobotAPI/components/InteractiveMemoryEditor/Editor.h b/source/RobotAPI/components/InteractiveMemoryEditor/Editor.h
index 1ba3dc26431eb590020423fb10e8aea5ce8a8aba..e64749cabcb24dc27b53f0353454bed2458d8f21 100644
--- a/source/RobotAPI/components/InteractiveMemoryEditor/Editor.h
+++ b/source/RobotAPI/components/InteractiveMemoryEditor/Editor.h
@@ -48,6 +48,7 @@ namespace armarx
             size_t resetIndex = std::numeric_limits<size_t>::max();
             size_t commitIndex = std::numeric_limits<size_t>::max();
             size_t updateIndex = std::numeric_limits<size_t>::max();
+            size_t resetAllIndex = std::numeric_limits<size_t>::max();
         };
 
         class ChangeState
@@ -89,6 +90,7 @@ namespace armarx
 
         bool isCommitRequired;
         bool isUpdateRequired;
+        bool isResetRequired;
         bool isMemoryVizRequired;
         bool isMetaVizRequired;
 
@@ -97,6 +99,7 @@ namespace armarx
 
         void commit();
         objpose::ObjectPoseSeq update();
+        void reset();
 
         void visualizeObject(objpose::ObjectPose &objectPose);
     };