diff --git a/dune/istl/bcrsmatrix.hh b/dune/istl/bcrsmatrix.hh
index ca6ac130f3ce81f88b689735238a9589a58f384a..56172f2f349c606846a92127b80b567c098667a0 100644
--- a/dune/istl/bcrsmatrix.hh
+++ b/dune/istl/bcrsmatrix.hh
@@ -2028,6 +2028,8 @@ namespace Dune {
       // allocate rows
       if(allocateRows) {
         if (n>0) {
+          if (r)
+            DUNE_THROW(InvalidStateException,"Rows have already been allocated, cannot allocate a second time");
           r = rowAllocator_.allocate(rows);
         }else{
           r = 0;