diff --git a/DDRec/src/DetectorSurfaces.cpp b/DDRec/src/DetectorSurfaces.cpp
index ca3cdd20cc12ff8713e18cda5894232ceb2d4047..288a643f661a3037aa43158d681033fdfdd4404b 100644
--- a/DDRec/src/DetectorSurfaces.cpp
+++ b/DDRec/src/DetectorSurfaces.cpp
@@ -35,8 +35,10 @@ namespace dd4hep {
       const VolSurfaceList* vsL = volSurfaceList(det) ;
 
       try {
-        _sL = det.extension< SurfaceList >() ;
-
+        _sL = det.extension< SurfaceList >(false) ;
+        if (not _sL) {
+          _sL = det.addExtension<SurfaceList >(  new SurfaceList( true )  ) ;
+        }
       } catch(const std::exception& e) { 
         _sL = det.addExtension<SurfaceList >(  new SurfaceList( true )  ) ; 
       }