diff --git a/common/poolallocator.hh b/common/poolallocator.hh
index 030e73e373a857ae3483975e80ec276181f9f138..0aa5f91a49ac4295e82c311ddc07a5beb5c53c72 100644
--- a/common/poolallocator.hh
+++ b/common/poolallocator.hh
@@ -244,7 +244,7 @@ namespace Dune
        * @brief The size in bytes to use for every memory chunk
        * allocated.
        */
-      size=s
+      size=s*sizeof(value_type)
     };
 
     /**
@@ -349,7 +349,7 @@ namespace Dune
     /**
      * @brief The underlying memory pool.
      */
-    static Pool<T,s> memoryPool_;
+    static Pool<T,PoolAllocator::size> memoryPool_;
   };
 
   // specialization for void
@@ -526,7 +526,7 @@ namespace Dune
   }
 
   template<class T, std::size_t s>
-  Pool<T,s> PoolAllocator<T,s>::memoryPool_;
+  Pool<T,PoolAllocator<T,s>::size> PoolAllocator<T,s>::memoryPool_;
 
   template<class T, std::size_t s>
   inline PoolAllocator<T,s>::PoolAllocator()