diff --git a/CMakeLists.txt b/CMakeLists.txt
index 58419ecd47c8b370ea929fae9bd75a0637640534..1b8cd87fd47eec52657ec077fb78ceab7877a938 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -76,12 +76,45 @@ if(DD4HEP_WITH_GEANT4)
   find_package( Geant4 ) 
   get_filename_component(Geant4_ROOT "${Geant4_INCLUDE_DIR}/../../" ABSOLUTE)
 
+  #----- if geant4 is build with external CLHEP we also need to export this fact
+
+  string(FIND "${Geant4_THIRD_PARTY_INCLUDE_DIRS}"  "CLHEP" CLHEP_POS )
+ 
+  if( NOT "${CLHEP_POS}" STREQUAL "-1"  )
+
+    set( GEANT4_WITH_CLHEP 1 )
+
+    #---- use FindCLHEP shipped with geant4 -----------
+    set(CMAKE_MODULE_PATH  ${CMAKE_MODULE_PATH}  ${Geant4_ROOT}/cmake/Modules ) 
+    
+    if( CLHEP_DIR ) #---- use 'canonical' name -----
+      set( CLHEP_ROOT_DIR ${CLHEP_DIR} )
+    endif()
+
+    find_package( CLHEP REQUIRED)
+
+    get_filename_component(CLHEP_LIBRARY_PATH "${CLHEP_LIBRARIES}" PATH)
+    
+    message( STATUS " *** geant4 was build with external CLHEP *** CLHEP_LIBRARY_PATH = ${CLHEP_LIBRARY_PATH}"  )
+  else()
+    set( GEANT4_WITH_CLHEP 0 )
+  endif()
+
 endif()
 
 
 add_subdirectory(UtilityApps)
 
+
+
 #---Configuration-------------------------------------------------------------------
+# ----for APPLE scripts have to set the DYLD_LIBRARY_PATH ?
+if( APPLE )
+  set( USE_DYLD 1)
+else()
+  set( USE_DYLD 0)
+endif()
+
 configure_file(cmake/thisdd4hep.csh thisdd4hep.csh @ONLY)
 configure_file(cmake/thisdd4hep.sh  thisdd4hep.sh @ONLY)
 configure_file(cmake/run_test.sh run_test.sh @ONLY)
diff --git a/cmake/DD4hepConfig.cmake.in b/cmake/DD4hepConfig.cmake.in
index 7860e1793706c26d16c468f15a006a508d806117..8a4a7556056c665d872f2d685c4916717b8fc468 100644
--- a/cmake/DD4hepConfig.cmake.in
+++ b/cmake/DD4hepConfig.cmake.in
@@ -47,6 +47,12 @@ INCLUDE( ${DD4hep_ROOT}/cmake/DD4hepMacros.cmake )
 # first argument should be the package name
 if(@DD4HEP_WITH_GEANT4@)
   CHECK_PACKAGE_LIBS( DD4hep DD4hepCore DDSegmentation DD4hepPlugins DD4hepG4 ) 
+
+  #--- if geant 4 was built with CLHEP we need to export this to client packages
+  if( @GEANT4_WITH_CLHEP@)
+    set(GEANT4_WITH_CLHEP  1 ) 
+  endif()
+
 else()
   CHECK_PACKAGE_LIBS( DD4hep DD4hepCore DDSegmentation DD4hepPlugins ) 
 endif()
@@ -58,6 +64,12 @@ if(@DD4HEP_USE_BOOST@)
   add_definitions(-DDD4HEP_USE_BOOST)
 endif()
 
+
+#----- APPLE ? -------
+
+set( USE_DYLD @USE_DYLD@ )
+MARK_AS_ADVANCED( USE_DYLD )
+
 # ---------- final checking ---------------------------------------------------
 INCLUDE( FindPackageHandleStandardArgs )
 # set DD4HEP_FOUND to TRUE if all listed variables are TRUE and not empty
diff --git a/cmake/thisdd4hep.sh b/cmake/thisdd4hep.sh
index f9cda1946812c2b696b3974bb30fb9c1fd5e5583..d2fdbbd0a294429e0767a515463212d8ff9b7513 100644
--- a/cmake/thisdd4hep.sh
+++ b/cmake/thisdd4hep.sh
@@ -20,15 +20,21 @@ fi
 #----------- source the ROOT environment first
 source @ROOT_ROOT@/bin/thisroot.sh
 
-if [ @DD4hep_WITH_GEANT4@ ]
+if [ @DD4HEP_WITH_GEANT4@ ]
 then
-    export G4INSTALL=@Geant4_ROOT@/../../
-    export G4ENV_INIT=@Geant4_ROOT@/../../bin/geant4.sh
-#    export G4SYSTEM="Darwin-g++"
+    export G4INSTALL=@Geant4_ROOT@
+    export G4ENV_INIT=@Geant4_ROOT@/bin/geant4.sh
+
+# ---------- initialze geant4 environment
     test -r ${G4ENV_INIT} && { cd $(dirname ${G4ENV_INIT}) ; . ./$(basename ${G4ENV_INIT}) ; cd $OLDPWD ; }
+
+    if [ @GEANT4_WITH_CLHEP@ ] ; then
+	export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:@CLHEP_LIBRARY_PATH@
+    fi
 fi
 
 
+
 #----PATH-----------------------------------------------------------------
 if [ -z "${PATH}" ]; then
   PATH=@CMAKE_INSTALL_PREFIX@/bin; export PATH       # Linux, ELF HP-UX
@@ -36,18 +42,21 @@ else
   PATH=@CMAKE_INSTALL_PREFIX@/bin:$PATH; export PATH
 fi
 
-#----LD_LIBRARY_PATH-----------------------------------------------------------------
-if [ -z "${LD_LIBRARY_PATH}" ]; then
-  LD_LIBRARY_PATH=@CMAKE_INSTALL_PREFIX@/lib:@XERCESC_ROOT_DIR@/lib:@Geant4_DIR@/..; export LD_LIBRARY_PATH       # Linux, ELF HP-UX
-else
-  LD_LIBRARY_PATH=@CMAKE_INSTALL_PREFIX@/lib:@XERCESC_ROOT_DIR@/lib:@Geant4_DIR@/..:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH
-fi
 
-#----DYLD_LIBRARY_PATH---------------------------------------------------------------
-if [ -z "${DYLD_LIBRARY_PATH}" ]; then
-  DYLD_LIBRARY_PATH=@CMAKE_INSTALL_PREFIX@/lib:@XERCESC_ROOT_DIR@/lib; export DYLD_LIBRARY_PATH   # Mac OS X
+#----(DY)LD_LIBRARY_PATH---------------------------------------------------------------
+if [ @USE_DYLD@ ]
+then
+    if [ -z "${DYLD_LIBRARY_PATH}" ]; then
+	DYLD_LIBRARY_PATH=@CMAKE_INSTALL_PREFIX@/lib:@XERCESC_ROOT_DIR@/lib; export DYLD_LIBRARY_PATH   # Mac OS X
+    else
+	DYLD_LIBRARY_PATH=@CMAKE_INSTALL_PREFIX@/lib:@XERCESC_ROOT_DIR@/lib:$DYLD_LIBRARY_PATH; export DYLD_LIBRARY_PATH
+    fi
 else
-  DYLD_LIBRARY_PATH=@CMAKE_INSTALL_PREFIX@/lib:@XERCESC_ROOT_DIR@/lib:$DYLD_LIBRARY_PATH; export DYLD_LIBRARY_PATH
+    if [ -z "${LD_LIBRARY_PATH}" ]; then
+	LD_LIBRARY_PATH=@CMAKE_INSTALL_PREFIX@/lib:@XERCESC_ROOT_DIR@/lib:@Geant4_DIR@/..; export LD_LIBRARY_PATH       # Linux, ELF HP-UX
+    else
+	LD_LIBRARY_PATH=@CMAKE_INSTALL_PREFIX@/lib:@XERCESC_ROOT_DIR@/lib:@Geant4_DIR@/..:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH
+    fi
 fi
 
 #----PYTHONPATH---------------------------------------------------------------
diff --git a/cmake/thisdd4hep_package.sh.in b/cmake/thisdd4hep_package.sh.in
index 61d1995e4b522ae9c3322f9c387ca9a9dcee9110..b100116a40e5f8a8542dc70300c38e7eb96b0c90 100644
--- a/cmake/thisdd4hep_package.sh.in
+++ b/cmake/thisdd4hep_package.sh.in
@@ -11,7 +11,7 @@ source @DD4hep_ROOT@/bin/thisdd4hep.sh
 
 export PATH=$PATH:@CMAKE_INSTALL_PREFIX@/bin
 
-if [ @APPLE@ ]
+if [ @USE_DYLD@ ]
 then
     export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:@CMAKE_INSTALL_PREFIX@/lib
 else