diff --git a/include/util.h b/include/util.h
index 83566abc1885a92e6a3e0805b7b94f31cf5d05b4..88e14b228183217c269493789b548b25c5d91484 100644
--- a/include/util.h
+++ b/include/util.h
@@ -322,6 +322,8 @@ struct mpf_hmat_create_compression_args_t {
   double threshold;
   const void * output;
 };
+int hmat_get_sync_exec(void) ;
+void mpf_hmat_compression(struct mpf_hmat_create_compression_args_t *);
 #endif
 
 #if !(defined (_WIN32)) /* It's a UNIX system, I know this ! */
@@ -429,7 +431,5 @@ double time_in_s(Time t);
 double time_interval_in_seconds(Time t1, Time t2);
 void simpleToDouble(void *data, size_t n) ;
 void doubleToSimple(void *data, size_t n) ;
-int hmat_get_sync_exec(void) ;
-void mpf_hmat_compression(struct mpf_hmat_create_compression_args_t *);
 int SCAB_Init(int* argc, char*** argv) ;
 int SCAB_Exit(int* argc, char** argv) ;
diff --git a/src/main.c b/src/main.c
index 490da5067cf9a81a2f210d9a2b7662c66436e4a3..a9a1de37d2912eb452f8bf2cd340d4b4dcdaa179 100644
--- a/src/main.c
+++ b/src/main.c
@@ -103,7 +103,9 @@ int main(int argc, char **argv) {
     case _gemvHCHAMELEON:
     case _gemmHCHAMELEON:
     case _solveHCHAMELEON:
+#ifdef HAVE_HMAT
       mpf_hmat_settings.engine = mpf_hmat_seq;
+#endif
       ierr = init_hmat_interface(); CHKERRQ(ierr);
       break;
     case _undefined:
diff --git a/src/util.c b/src/util.c
index b37093669e156693b4afa9b7a547d1a7d2beea26..ea8873279279ecda21cfa10a37b4177adfac26ad 100644
--- a/src/util.c
+++ b/src/util.c
@@ -953,8 +953,6 @@ int SCAB_Init(int* argc, char*** argv) {
   hmat_set_parameters(&settings);
 
   mpf_hmat_settings.progress.update = update_progress;
-#else
-  SETERRQ(1, "HMatrix solver not available");
 #endif