diff --git a/DDCond/include/DDCond/ConditionsManager.h b/DDCond/include/DDCond/ConditionsManager.h
index e48a14dd18036f7e69e279a619f6ddf211da80b1..8a5fb1475fabda49422f7b104450cf2bee74395a 100644
--- a/DDCond/include/DDCond/ConditionsManager.h
+++ b/DDCond/include/DDCond/ConditionsManager.h
@@ -74,7 +74,7 @@ namespace DD4hep {
       ConditionsManager(Object* p) : Handle<Object>(p) {}
 
       /// Constructor to assing handle of the same type
-      template <typename Q> ConditionsManager(const ConditionsManager& c)
+      ConditionsManager(const ConditionsManager& c)
         : Handle<Object>(c) {
       }
 
diff --git a/DDCore/include/XML/UriReader.h b/DDCore/include/XML/UriReader.h
index cc78156f5efd9182b7c55bfb10201de1d706319a..072c677f5647dd67a29439317498f6474d3e6496 100644
--- a/DDCore/include/XML/UriReader.h
+++ b/DDCore/include/XML/UriReader.h
@@ -36,8 +36,9 @@ namespace DD4hep {
     class UriReader {
     public:
       struct UserContext {
-	UserContext() {}
-	virtual ~UserContext() {}
+        UserContext() {}
+        UserContext(const UserContext&) {}
+        virtual ~UserContext() {}
       };
     public:
       /// Default constructor
@@ -70,8 +71,10 @@ namespace DD4hep {
       /// Pointer to user context
       UriReader::UserContext* m_context;
     public:
-      /// Default constructor
+      /// Default initializing constructor
       UriContextReader(UriReader* reader, UriReader::UserContext* ctxt);
+      /// Copy constructor
+      UriContextReader(const UriContextReader& copy);
       /// Default destructor
       virtual ~UriContextReader();
       /// Access to local context
diff --git a/DDCore/src/XML/UriReader.cpp b/DDCore/src/XML/UriReader.cpp
index 9a4342e04b2743479cfc6eba96e8c4ca323cb493..e78a8ba4d5ae3d2a58d27e39a69c36c8699cdc30 100644
--- a/DDCore/src/XML/UriReader.cpp
+++ b/DDCore/src/XML/UriReader.cpp
@@ -30,6 +30,12 @@ DD4hep::XML::UriContextReader::UriContextReader(UriReader* reader, UriReader::Us
 {
 }
 
+/// Copy constructor
+DD4hep::XML::UriContextReader::UriContextReader(const UriContextReader& copy)
+  : m_reader(copy.m_reader), m_context(copy.m_context)
+{
+}
+
 /// Default destructor
 DD4hep::XML::UriContextReader::~UriContextReader()   {
 }
diff --git a/DDDB/src/DDDB2Objects.cpp b/DDDB/src/DDDB2Objects.cpp
index 9fd96135fdfdfe436536204f4a8aca92c6bd1f05..ce304e4aa45211dbebbc6a10843f9b5f5b45f8d2 100644
--- a/DDDB/src/DDDB2Objects.cpp
+++ b/DDDB/src/DDDB2Objects.cpp
@@ -65,8 +65,6 @@ namespace DD4hep {
     typedef Geometry::Material                   GeoMaterial;
     typedef Geometry::Solid                      GeoSolid;
 
-    const double SMALL = 1e-10;
-
     /// Helper class to facilitate conversion. Purely local.
     struct Context  {
 
@@ -530,12 +528,6 @@ namespace DD4hep {
       return shape;
     }
 
-    inline int num_slash(const string& s)  {
-      size_t count=1, idx=s.find('/');
-      for(; idx != string::npos; idx=s.find('/',idx+1)) ++count;
-      return count;
-    }
-
     inline GeoPlacement place_daughter(const char* pv, GeoVolume mother, GeoVolume daughter, const Transform3D& tr)  {
       GeoPlacement place = mother.placeVolume(daughter, tr);
       // Use title for user defined physical volume name, since TGeo sets already the name!
@@ -749,22 +741,6 @@ namespace DD4hep {
       return GeoVolume(0);
     }
 
-    DetElement __parent(Context* context,const string& path)   {
-      using Geometry::DetectorTools::findDaughterElement;
-      DetElement par = findDaughterElement(context->detectors,path);
-      if ( par.isValid() )   {
-        return par;
-      }
-      else if ( path.length() > 1 )   {
-        Path p = path;
-        par = __parent(context,p.parent_path().native());
-        DetElement det = DetElement(p.filename().native(),"Logical",0);
-        par.add(det);
-        return det;
-      }
-      return context->lcdd.world();
-    }
-
     template <> void* CNV<Catalog>::convert(Catalog *object) const    {
       Context* context = _param<Context>();
       dddb*    geo     = context->geo;