diff --git a/grid/alu3dgrid/alu3dgrid.cc b/grid/alu3dgrid/alu3dgrid.cc
index 9ad3c95c09548571af2a710e0f948478f72ecfdb..fce5061510230aa1fd13db34b0c90b56d37a662a 100644
--- a/grid/alu3dgrid/alu3dgrid.cc
+++ b/grid/alu3dgrid/alu3dgrid.cc
@@ -260,12 +260,17 @@ namespace Dune {
   template <int dim, int dimworld>
   template <class DofManagerType, class RestrictProlongOperatorType>
   inline bool ALU3dGrid<dim,dimworld>::
-  adapt(DofManagerType & dm, RestrictProlongOperatorType & rpo)
+  adapt(DofManagerType & dm, RestrictProlongOperatorType & rpo, bool verbose )
   {
+    assert( ((verbose) ? (std::cout << "ALU3dGrid :: adapt() new method called!\n", 1) : 1 ) );
     EntityImp f ( *this, this->maxlevel() );
     EntityImp s ( *this, this->maxlevel() );
 
-    int newElements = 16*refineMarked_; // guess how many new elements we get
+    int defaultChunk = newElementsChunk_;
+    int actChunk     = refineEstimate_ * refineMarked_;
+
+    // guess how many new elements we get
+    int newElements = std::max( actChunk , defaultChunk );
     ALU3DSPACE AdaptRestrictProlongImpl<ALU3dGrid<dim,dimworld>, EntityImp, DofManagerType, RestrictProlongOperatorType >
     rp(*this,f,s,dm,rpo, newElements);
 
@@ -274,7 +279,7 @@ namespace Dune {
 
     // if new maxlevel was claculated
     if(rp.maxlevel() >= 0) maxlevel_ = rp.maxlevel();
-    //std::cout << maxlevel_ << "\n";
+    assert( ((verbose) ? (std::cout << "maxlevel = " << maxlevel_ << "!\n", 1) : 1 ) );
 
     if(ref)
     {
@@ -288,6 +293,7 @@ namespace Dune {
     communicate(dm);
 
     postAdapt();
+    assert( ((verbose) ? (std::cout << "ALU3dGrid :: adapt() new method finished!\n", 1) : 1 ) );
     return ref;
   }