diff --git a/dune/solvers/common/interval.hh b/dune/solvers/common/interval.hh
index 594a489f585fe2c75b802a271bbc7d67e42a758f..529d9abbabbabe77abae71e2847d5be3b7c38f05 100644
--- a/dune/solvers/common/interval.hh
+++ b/dune/solvers/common/interval.hh
@@ -63,6 +63,11 @@ public:
     {
       data_[0] *= c;
       data_[1] *= c;
+
+      // swap if multiplication with negative number
+      if ( c < 0.0 )
+        std::swap(data_[0],data_[1]);
+
       return *this;
     }