diff --git a/DDCore/include/DD4hep/NamedObject.h b/DDCore/include/DD4hep/NamedObject.h
index 09eac69c017a66d6ce878594b8515c3a2e38815c..88b8e9326e6b9a94469a626458f243f46f1cbfb4 100644
--- a/DDCore/include/DD4hep/NamedObject.h
+++ b/DDCore/include/DD4hep/NamedObject.h
@@ -45,11 +45,15 @@ namespace dd4hep {
     NamedObject() = default;
     /// Copy constructor
     NamedObject(const NamedObject& c) = default;
+    /// Move constructor
+    NamedObject(NamedObject&& c) = default;
+
     /// Default destructor
     virtual ~NamedObject() = default;
     /// Assignment operator
     NamedObject& operator=(const NamedObject& c) = default;
-
+    /// Move assignment operator
+    NamedObject& operator=(NamedObject&& c) = default;
     /// Access name
     const char* GetName()  const  {
       return name.c_str();
diff --git a/DDCore/include/DD4hep/detail/ConditionsInterna.h b/DDCore/include/DD4hep/detail/ConditionsInterna.h
index 39d1f3a8e91c805d141d62af03764bd8e06e6811..8d600473cef7e7e2e37862a0ed81aa1fdc4a520d 100644
--- a/DDCore/include/DD4hep/detail/ConditionsInterna.h
+++ b/DDCore/include/DD4hep/detail/ConditionsInterna.h
@@ -85,12 +85,16 @@ namespace dd4hep {
       ConditionObject();
       /// No copy constructor
       ConditionObject(const ConditionObject&) = delete;
+      // Move constructor
+      ConditionObject(ConditionObject&&) = default;
       /// Standard constructor
       ConditionObject(const std::string& nam,const std::string& tit="");
       /// Standard Destructor
       virtual ~ConditionObject();
       /// No assignment operation
       ConditionObject& operator=(const ConditionObject&) = delete;
+      /// Move assignment operator
+      ConditionObject& operator=(ConditionObject&&) = default;
       /// Increase reference counter (Used by persistency mechanism)
       ConditionObject* addRef()  {  ++refCount; return this;         }
       /// Release object (Used by persistency mechanism)