diff --git a/grid/common/grid.hh b/grid/common/grid.hh
index 8fe0dc7c582117395e9ab4004ef43b51d6c92677..9386e2961e1fdd21fc2dd6e8138cdd0df6e57ac3 100644
--- a/grid/common/grid.hh
+++ b/grid/common/grid.hh
@@ -537,6 +537,9 @@ namespace Dune {
     typedef typename GridFamily::Traits::Grid GridImp;
 
   public:
+    //! the traits of this class
+    typedef typename GridFamily::Traits Traits;
+
     enum {
       //! \brief The dimension of the grid
       dimension=dim
@@ -720,7 +723,8 @@ namespace Dune {
     template< int dim, int dimworld, typename ct, class GridFamily >
     struct hasLeafIterator< GridDefaultImplementation<dim,dimworld,ct,GridFamily> >
     {
-      typedef typename GridFamily::GridImp GridImp;
+      typedef GridDefaultImplementation<dim,dimworld,ct,GridFamily> GridType;
+      typedef typename GridType::Traits::Grid GridImp;
       static const bool v = hasLeafIterator<GridImp>::v;
     };
 
@@ -728,7 +732,8 @@ namespace Dune {
     template< int dim, int dimworld, typename ct, class GridFamily , int cdim >
     struct hasEntity< GridDefaultImplementation<dim,dimworld,ct,GridFamily>, cdim >
     {
-      typedef typename GridFamily::GridImp GridImp;
+      typedef GridDefaultImplementation<dim,dimworld,ct,GridFamily> GridType;
+      typedef typename GridType::Traits::Grid GridImp;
       static const bool v = hasEntity<GridImp,cdim>::v;
     };