diff --git a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp
index 7403e833107e392c8ffdecc4f0544500b13568de..deeec0ebb3405b9ac61bdbf9dbc76549f3fa4564 100644
--- a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp
+++ b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp
@@ -350,4 +350,12 @@ namespace armarx::armem::server::obj
         }
     }
 
+    void ObjectMemory::reloadKnownObjectClasses(const Ice::Current& current)
+    {
+        ARMARX_INFO << "Reloading object classes ...";
+        classSegment.reloadObjectClassesByObjectFinder();
+        ARMARX_INFO << "Reloaded object classes.";
+    }
+
+
 }
diff --git a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.h b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.h
index 9a97c2374a3010c5003978bf8f0eecdecb4af610..ec78eb3fa7493a890541e915317ccd1689d9e15d 100644
--- a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.h
+++ b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.h
@@ -110,6 +110,8 @@ namespace armarx::armem::server::obj
         void createRemoteGuiTab();
         void RemoteGui_update() override;
 
+        // Updates the list of known classes and generates a new snapshot in the memory
+        void reloadKnownObjectClasses(const Ice::Current& current) override;
 
     private:
 
diff --git a/source/RobotAPI/interface/armem/server/ObjectMemoryInterface.ice b/source/RobotAPI/interface/armem/server/ObjectMemoryInterface.ice
index fdae53a727de5b00ad65e4d9edacca8734ce26fe..fa9d74f160dc12e05fd6b1395d03b85b36384bea 100644
--- a/source/RobotAPI/interface/armem/server/ObjectMemoryInterface.ice
+++ b/source/RobotAPI/interface/armem/server/ObjectMemoryInterface.ice
@@ -54,6 +54,7 @@ module armarx
                     , FamiliarObjectInstanceSegmentInterface
             {
 
+                void reloadKnownObjectClasses();
             };
 
         };
diff --git a/source/RobotAPI/libraries/armem_objects/server/class/Segment.cpp b/source/RobotAPI/libraries/armem_objects/server/class/Segment.cpp
index a9b406a13c1fa22384705afa88777a5a9c504a9e..c25da26b18023deecb52a83191ee4d17af11c609 100644
--- a/source/RobotAPI/libraries/armem_objects/server/class/Segment.cpp
+++ b/source/RobotAPI/libraries/armem_objects/server/class/Segment.cpp
@@ -56,11 +56,26 @@ namespace armarx::armem::server::obj::clazz
 
         if (p.loadFromObjectsPackage)
         {
-            ARMARX_VERBOSE << "Loading objects from package";
+            ARMARX_VERBOSE << "Loading objects from package `" << p.objectsPackage << "`.";
             loadByObjectFinder(p.objectsPackage);
         }
     }
 
+    void
+    Segment::reloadObjectClassesByObjectFinder()
+    {
+        if (p.loadFromObjectsPackage)
+        {
+            ARMARX_VERBOSE << "Loading objects from package `" << p.objectsPackage << "`.";
+            loadByObjectFinder(p.objectsPackage);
+        }
+        else
+        {
+            ARMARX_INFO << "Loading object from package in `reloadObjectClassesByObjectFinder()` "
+                           "is disabled via property. No object classes will be reloaded!";
+        }
+    }
+
     void
     Segment::connect(viz::Client arviz)
     {
diff --git a/source/RobotAPI/libraries/armem_objects/server/class/Segment.h b/source/RobotAPI/libraries/armem_objects/server/class/Segment.h
index ba42e0072097beb531b1fedbef3f6344eb208cc4..b2da5cd1b44faf2382c3a31eba5fcf9c3486029a 100644
--- a/source/RobotAPI/libraries/armem_objects/server/class/Segment.h
+++ b/source/RobotAPI/libraries/armem_objects/server/class/Segment.h
@@ -38,6 +38,8 @@ namespace armarx::armem::server::obj::clazz
         void loadByObjectFinder(const ObjectFinder& finder);
         void loadByObjectFinder();
 
+        void reloadObjectClassesByObjectFinder();
+
         void visualizeClass(const MemoryID& entityID, bool showAABB = true, bool showOOBB = true);