diff --git a/DDCore/include/DD4hep/detail/SegmentationsInterna.h b/DDCore/include/DD4hep/detail/SegmentationsInterna.h
index 321cdc98c6ba6aead79c328c7323575172505284..a3d35ef458f8d3134fc33ff9bbab82d6ad8f1c81 100644
--- a/DDCore/include/DD4hep/detail/SegmentationsInterna.h
+++ b/DDCore/include/DD4hep/detail/SegmentationsInterna.h
@@ -121,5 +121,13 @@ namespace dd4hep {
   /// Default destructor
   template <typename IMP> inline SegmentationWrapper<IMP>::~SegmentationWrapper()  {
   }
+
+  namespace {
+    template<typename T> SegmentationObject*
+    create_segmentation(const BitFieldCoder* decoder)  {
+      return new SegmentationWrapper<T>(decoder);
+    }
+  }
+
 }         /* End namespace dd4hep                       */
 #endif // DD4HEP_DETAIL_SEGMENTATIONSINTERNA_H
diff --git a/DDCore/src/plugins/ReadoutSegmentations.cpp b/DDCore/src/plugins/ReadoutSegmentations.cpp
index 7462e7d931e8557762d2a7cc375ff5ec24ba8b44..8da001cc7fc8709fbfe8850dfbc9a7064270090a 100644
--- a/DDCore/src/plugins/ReadoutSegmentations.cpp
+++ b/DDCore/src/plugins/ReadoutSegmentations.cpp
@@ -18,13 +18,6 @@
 using namespace dd4hep;
 using namespace dd4hep::DDSegmentation;
 
-namespace {
-  template<typename T> dd4hep::SegmentationObject*
-  create_segmentation(const dd4hep::BitFieldCoder* decoder)  {
-    return new dd4hep::SegmentationWrapper<T>(decoder);
-  }
-}
-
 #include "DDSegmentation/NoSegmentation.h"
 DECLARE_SEGMENTATION(NoSegmentation,create_segmentation<dd4hep::DDSegmentation::NoSegmentation>)