diff --git a/z_spm_expand.c b/z_spm_expand.c
index 536a6170b62349d5ba9a8775e45e668c71a76227..d10ccae515b243d7583e7874d8a96dfbd9fbc92d 100644
--- a/z_spm_expand.c
+++ b/z_spm_expand.c
@@ -196,7 +196,7 @@ z_spmCSRExpand(const pastix_spm_t *spm)
     }
 
     newspm = malloc( sizeof(pastix_spm_t) );
-    spmInit( newspm );
+    memcpy( newspm, spm, sizeof(pastix_spm_t) );
 
     baseval = spmFindBase( spm );
     oldcol = spm->colptr;
@@ -352,7 +352,7 @@ z_spmIJVExpand(const pastix_spm_t *spm)
     }
 
     newspm = malloc( sizeof(pastix_spm_t) );
-    spmInit( newspm );
+    memcpy( newspm, spm, sizeof(pastix_spm_t) );
 
     baseval = spmFindBase( spm );
     oldcol = spm->colptr;