diff --git a/Solver/linearSystemGMM.h b/Solver/linearSystemGMM.h
index 5f47c596a832787bd6a3e0c19c0122642d531bc2..99927fd0cb37a66d2ced988187090a21388cf6f5 100644
--- a/Solver/linearSystemGMM.h
+++ b/Solver/linearSystemGMM.h
@@ -106,12 +106,16 @@ class linearSystemGmm : public linearSystem<scalar> {
   void setGmres(int n){ _gmres = n; }
   virtual int systemSolve()
   {
+#if defined(HAVE_MUMPS)
+    gmm::MUMPS_solve(*_a, *_x, *_b);
+#else
     //gmm::ilutp_precond<gmm::row_matrix<gmm::wsvector<scalar> > > P(*_a, 25, 0.);
     gmm::ildltt_precond<gmm::row_matrix<gmm::wsvector<scalar> > > P(*_a, 30, 1.e-10);
     gmm::iteration iter(_prec);
     iter.set_noisy(_noisy);
     if(_gmres) gmm::gmres(*_a, *_x, *_b, P, 100, iter);
     else gmm::cg(*_a, *_x, *_b, P, iter);
+#endif
     return 1;
   }
 };