diff --git a/DDCore/include/XML/Utilities.h b/DDCore/include/XML/Utilities.h
index 010e0c7fcafc8c8387a018faf9ae203b35db2121..6fb9a2737edc8b6cbbac5e8a2b4d9c0b84b67227 100644
--- a/DDCore/include/XML/Utilities.h
+++ b/DDCore/include/XML/Utilities.h
@@ -47,6 +47,17 @@ namespace DD4hep {
     Geometry::Volume createPlacedEnvelope( DD4hep::Geometry::LCDD& lcdd, DD4hep::XML::Handle_t e , 
                                            DD4hep::Geometry::DetElement sdet ) ;
     
+
+
+
+    /** Sets the type flag specified in the \<type_flags\> element for the given DetElement, example: <br>
+	@verbatim
+	<type_flags type=" DetType_TRACKER + DetType_PIXEL + DetType_VERTEX "/>
+	@endverbatim
+     *  @author F.Gaede, DESY
+     */
+    void setDetectorTypeFlag( DD4hep::XML::Handle_t e, DD4hep::Geometry::DetElement sdet ) ; 
+
   }  /* End namespace XML              */
 }    /* End namespace DD4hep           */
 #endif    /* DD4hep_XML_XMLUTILITIES_H */
diff --git a/DDCore/src/XML/Utilities.cpp b/DDCore/src/XML/Utilities.cpp
index df6cd5a888e4ad59cc26d2d7bda12cb63ca5b7ca..f1d707b1b7ed193fb178d4bec1a8a6e9f4598477 100644
--- a/DDCore/src/XML/Utilities.cpp
+++ b/DDCore/src/XML/Utilities.cpp
@@ -122,3 +122,19 @@ Geometry::Volume DD4hep::XML::createPlacedEnvelope( DD4hep::Geometry::LCDD& lcdd
 
   return envelope ;
 }
+
+
+void  DD4hep::XML::setDetectorTypeFlag( DD4hep::XML::Handle_t e, DD4hep::Geometry::DetElement sdet ){
+
+  xml_det_t     x_det     = e;
+  string        det_name  = x_det.nameStr();
+  
+  xml_comp_t    x_dettype     =  x_det.child( DD4hep::XML::Strng_t("type_flags") ) ;
+
+  unsigned int typeFlag = x_dettype.type() ;
+ 
+  printout(DEBUG,"Utilities","+++ setDetectorTypeFlags for detector :%s set to 0x%x", det_name.c_str(), typeFlag ) ; 
+
+  sdet.setTypeFlag( typeFlag ) ;
+
+}