diff --git a/common/bartonnackmanifcheck.hh b/common/bartonnackmanifcheck.hh
index 7527750cab5dd5ff11cd6242662e18b080e98585..e86bdb5192963155c08584072d3b0b1ad7ecca35 100644
--- a/common/bartonnackmanifcheck.hh
+++ b/common/bartonnackmanifcheck.hh
@@ -24,8 +24,15 @@
     if( call == true ) \
       DUNE_THROW(NotImplemented,"Interface method not implemented!");\
     call = true; \
-    (__interface_method_to_call__); \
-    call = false; \
+    try { \
+      (__interface_method_to_call__); \
+      call = false; \
+    } \
+    catch ( ... ) \
+    { \
+      call = false; \
+      throw; \
+    } \
   }
 #endif
 #endif