diff --git a/DDRec/include/DDRec/Surface.h b/DDRec/include/DDRec/Surface.h
index e29dc49371fa89879b0a89a82b6f493908648e60..2ec9529407474cc630de965e53bb6a17b7cb397a 100644
--- a/DDRec/include/DDRec/Surface.h
+++ b/DDRec/include/DDRec/Surface.h
@@ -27,18 +27,18 @@ namespace DD4hep {
       SurfaceMaterial( Geometry::Material m ) : Geometry::Material( m ) {} 
       
       /// averaged proton number
-      virtual double Z() const { return Geometry::Material()->GetMaterial()->GetZ() ; }
+      virtual double Z() const { return m_element->GetMaterial()->GetZ()  ; }
       
       /// averaged atomic number
-      virtual double A() const { return Geometry::Material()->GetMaterial()->GetA() ; }
+      virtual double A() const { return m_element->GetMaterial()->GetA() ; }
       
       /// density - units ?
-      virtual double density() const { return Geometry::Material()->GetMaterial()->GetDensity() ; } 
+      virtual double density() const { return m_element->GetMaterial()->GetDensity() ; } 
       
-      /// radiation length - units ?
+      /// radiation length - tgeo units 
       virtual double radiationLength() const { return Geometry::Material::radLength() ; } 
       
-      /// interaction length - units ?
+      /// interaction length - tgeo units 
       virtual double interactionLength() const  { return Geometry::Material::intLength() ; }
 
     };
diff --git a/DDTest/src/test_surface.cc b/DDTest/src/test_surface.cc
index 1085991d73520e1c0287dc70304120ca20a6a00a..69e9271c3e18d6433722482e190753ea1ab175ec 100644
--- a/DDTest/src/test_surface.cc
+++ b/DDTest/src/test_surface.cc
@@ -96,11 +96,12 @@ int main(int argc, char** argv ){
     // --- test SurfaceMaterial
     SurfaceMaterial sm( mat ) ;
 
-    // FIXME: these cause a seg fault ....
+    // material properies of Si :
+    test( STR( sm.A() )  , STR( 28.0855 ) , "   SurfaceMaterial.A() == 28.0855 " ) ; 
 
-    // test( STR( sm.A() )  , STR( 93.4961 ) , "   SurfaceMaterial.A() == 93.4961 " ) ; 
-    
-    // test( STR( sm.Z() )  , STR( 93.4961 ) , "   SurfaceMaterial.Z() == 93.4961 " ) ; 
+    test( STR( sm.Z() )  , STR( 14 ) , "   SurfaceMaterial.Z() == 14 " ) ; 
+
+    test( STR( sm.density() )  , STR( 2.33 ) , "   SurfaceMaterial.density() == 2.33 " ) ; 
 
     test( STR( sm.radiationLength() / tgeo::mm )  , STR( 93.4961 ) , "   SurfaceMaterial.radiationLength() == 93.4961 * mm " ) ;