diff --git a/DDCore/CMakeLists.txt b/DDCore/CMakeLists.txt
index 4078194af5f33be7f230de5afc97b16e5ee2be59..8c08055ae22a9015534a8dc4322da1dd95274aec 100644
--- a/DDCore/CMakeLists.txt
+++ b/DDCore/CMakeLists.txt
@@ -31,6 +31,7 @@ dd4hep_add_dictionary( G__DD4hep
   include/XML/tinystring.h
   LINKDEF include/ROOT/LinkDef.h
   USES DDParsers ${XML_LIBRARIES}
+  DEFINITIONS DD4HEP_MUST_USE_DETECTORIMP_H
   )
 
 dd4hep_add_dictionary( G__DD4hepGeo
diff --git a/DDCore/include/DD4hep/DetectorImp.h b/DDCore/include/DD4hep/DetectorImp.h
index 441f30a6046ff5d0001e2acf10ce7621dbc3bf8c..c0c462e94023036cddcc9e241383313f07554d9f 100644
--- a/DDCore/include/DD4hep/DetectorImp.h
+++ b/DDCore/include/DD4hep/DetectorImp.h
@@ -10,10 +10,23 @@
 // Author     : M.Frank
 //
 //==========================================================================
-
 #ifndef DD4HEP_DetectorGEOIMP_H
 #define DD4HEP_DetectorGEOIMP_H
 
+//==========================================================================
+//
+// Please note:
+//
+// This header file is purely DD4hep internal. It should never be used
+// independently outside DetectorImp.cpp and certain DD4hep specific plugins.
+// This header files is only publicly present to satisfy the ROOT interpreter
+// when loading precompiled dictionary libraries.
+//
+//==========================================================================
+#if !defined(DD4HEP_MUST_USE_DETECTORIMP_H) && !defined(G__ROOT)
+#error "DetectorImp.h is a dd4hep internal header. Never use it in a depending compilation unit!"
+#endif
+
 // Framework include files
 #include "DD4hep/DetectorData.h"
 #include "DD4hep/DetectorLoad.h"
diff --git a/DDCore/src/DetectorImp.cpp b/DDCore/src/DetectorImp.cpp
index f89d06c3916b32ba1d4f3e8dfcc8949b2952bf36..663782df7f264cd6450d588768bdbd4563b5f7ae 100644
--- a/DDCore/src/DetectorImp.cpp
+++ b/DDCore/src/DetectorImp.cpp
@@ -11,6 +11,8 @@
 //
 //==========================================================================
 
+#define DD4HEP_MUST_USE_DETECTORIMP_H 1
+
 // Framework include files
 #include "DD4hep/Plugins.h"
 #include "DD4hep/Printout.h"
diff --git a/DDCore/src/plugins/StandardPlugins.cpp b/DDCore/src/plugins/StandardPlugins.cpp
index eb81f8cbebf2a398ee8a165906e8eb79ee991db2..4c8d3aa4cf60ed860892523999de9af893b77779 100644
--- a/DDCore/src/plugins/StandardPlugins.cpp
+++ b/DDCore/src/plugins/StandardPlugins.cpp
@@ -12,6 +12,7 @@
 //==========================================================================
 
 // Framework include files
+#define DD4HEP_MUST_USE_DETECTORIMP_H
 #include "DD4hep/Detector.h"
 #include "DD4hep/DetectorImp.h"
 #include "DD4hep/Memory.h"