diff --git a/spm_read_driver.c b/spm_read_driver.c
index 20ee25267b16856640a4b4ffb4a6af433ddc6eba..84dc1a03aafb62a76056c3f0ab43f5b6f31f902d 100644
--- a/spm_read_driver.c
+++ b/spm_read_driver.c
@@ -62,18 +62,7 @@ spmReadDriver( pastix_driver_t  driver,
     int mpirank = 0;
     int mpiinit;
 
-    spm->mtxtype  = PastixGeneral;
-    spm->flttype  = PastixDouble;
-    spm->fmttype  = PastixCSC;
-    spm->gN       = 0;
-    spm->n        = 0;
-    spm->gnnz     = 0;
-    spm->nnz      = 0;
-    spm->dof      = 1;
-    spm->colptr   = NULL;
-    spm->rowptr   = NULL;
-    spm->values   = NULL;
-    spm->loc2glob = NULL;
+    spmInit(spm);
 
     MPI_Initialized( &mpiinit );
     if (mpiinit) {
@@ -327,5 +316,10 @@ spmReadDriver( pastix_driver_t  driver,
         /* MPI_Bcast(*type,    4,      MPI_CHAR,         0, comm); */
     }
 
+    spm->gNexp   = spm->gN;
+    spm->nexp    = spm->n;
+    spm->gnnzexp = spm->gnnz;
+    spm->nnzexp  = spm->nnz;
+
     return PASTIX_SUCCESS;
 }