diff --git a/include/main.h b/include/main.h
index e345aa02e8f990e8fe303f612ff71989bc1453cd..673b36c6b5da741f88874027ce812955bb314b54 100644
--- a/include/main.h
+++ b/include/main.h
@@ -60,7 +60,6 @@ double* createCylinder(void) ;
 int printHelp() ;
 void prepare_hmat(int, int, int, int, int*, int*, int*, int*, void*, hmat_block_info_t *);
 void advanced_compute_hmat(struct hmat_block_compute_context_t*);
-int init_hmat_interface() ;
 void update_progress(hmat_progress_t * ctx);
 
 struct HMAT_desc_s;
diff --git a/src/hmat.c b/src/hmat.c
index fff785cef1c5c2731147cb5db46b4b1a5b7329a8..b3e5981ac5d9840013f07232de643148272bd9ad 100644
--- a/src/hmat.c
+++ b/src/hmat.c
@@ -1,14 +1,5 @@
 #include "main.h"
 
-int init_hmat_interface() {
-  interface = calloc(1, sizeof(hmat_interface_t)); CHKPTRQ(interface);
-  hmat_init_default_interface(interface, HMAT_DOUBLE_PRECISION);
-  if (!interface->init)
-      SETERRQ(1, "No valid HMatrix interface. Incorrect parameters ?");
-  interface->init();
-  return 0;
-}
-
 /**
   This structure is a glue between hmat library and application.
 */
diff --git a/src/main.c b/src/main.c
index 637b908d1c6ecae3c9327812b63d1c1a719f6083..182f58a40d34a12a456b1cd36d33a3526ed8445a 100644
--- a/src/main.c
+++ b/src/main.c
@@ -23,7 +23,11 @@ int main(int argc, char **argv) {
   printf("[minisolver] hmat version = %s\n", HMAT_VERSION);
 
   printf("[minisolver] hmat initialization ... ");
-  ierr = init_hmat_interface(); CHKERRQ(ierr);
+  interface = calloc(1, sizeof(hmat_interface_t)); CHKPTRQ(interface);
+  hmat_init_default_interface(interface, HMAT_DOUBLE_PRECISION);
+  if (!interface->init)
+      SETERRQ(1, "No valid HMatrix interface. Incorrect parameters ?");
+  interface->init();
   progress.update = update_progress;
   printf("done\n");