diff --git a/spm_dofs.c b/spm_dofs.c
index 8d9fa3cdc9b752e4d9a0e97b6044757c3a330e2a..d75f839c5ec3e74d454b83aa555bb47f23c962ba 100644
--- a/spm_dofs.c
+++ b/spm_dofs.c
@@ -83,6 +83,11 @@ spmDofExtend( const int type,
 
         switch(spm->fmttype)
         {
+        case PastixCSR:
+            /* Swap pointers to call CSC */
+            colptr = newspm->rowptr;
+            rowptr = newspm->colptr;
+
         case PastixCSC:
             for(j=0; j<newspm->n; j++, colptr++) {
                 dofj = dofptr[j+1] - dofptr[j];
@@ -95,18 +100,6 @@ spmDofExtend( const int type,
                 }
             }
             break;
-        case PastixCSR:
-            for(i=0; i<newspm->n; i++, rowptr++) {
-                dofi = dofptr[i+1] - dofptr[i];
-
-                for(k=rowptr[0]; k<rowptr[1]; k++, rowptr++) {
-                    j = *colptr - baseval;
-                    dofj = dofptr[j+1] - dofptr[j];
-
-                    newspm->nnzexp += dofi * dofj;
-                }
-            }
-            break;
         case PastixIJV:
             for(k=0; k<newspm->nnz; k++, rowptr++, colptr++)
             {