diff --git a/spm.c b/spm.c
index 919aec3ec8bd03f4e84e665b3118c8c00eb7d7a9..0fc78f42dc0e3a307b981c2fa52ed99b7676dd97 100644
--- a/spm.c
+++ b/spm.c
@@ -185,13 +185,33 @@ spmBase( pastix_spm_t *spm,
     n   = spm->n;
     nnz = spm->nnz;
 
-    assert( nnz == (spm->colptr[n] - spm->colptr[0]) );
+    switch(spm->fmttype)
+    {
+    case PastixCSC:
+        assert( nnz == (spm->colptr[n] - spm->colptr[0]) );
 
-    for (i = 0; i <= n; i++) {
-        spm->colptr[i] += baseadj;
-    }
-    for (i = 0; i < nnz; i++) {
-        spm->rowptr[i] += baseadj;
+        for (i = 0; i <= n; i++) {
+            spm->colptr[i] += baseadj;
+        }
+        for (i = 0; i < nnz; i++) {
+            spm->rowptr[i] += baseadj;
+        }
+        break;
+
+    case PastixCSR:
+        assert( nnz == (spm->rowptr[n] - spm->rowptr[0]) );
+        for (i = 0; i <= n; i++) {
+            spm->rowptr[i] += baseadj;
+        }
+        for (i = 0; i < nnz; i++) {
+            spm->colptr[i] += baseadj;
+        }
+        break;
+    case PastixIJV:
+        for (i = 0; i < nnz; i++) {
+            spm->rowptr[i] += baseadj;
+            spm->colptr[i] += baseadj;
+        }
     }
 
     if (spm->loc2glob != NULL) {