diff --git a/z_spm_matrixvector.c b/z_spm_matrixvector.c
index 4b0cf88930cc6cf9bcf80186025e1f1a835d0d3d..14238ff1410df0afc554de51f82b726f1cda38b1 100644
--- a/z_spm_matrixvector.c
+++ b/z_spm_matrixvector.c
@@ -109,12 +109,12 @@ z_spmGeCSCv(      int                 trans,
             for( i=0; i < csc->gN; i++ )
             {
                 dofi = ( csc->dof > 0 ) ? csc->dof : dofs[i+1] - dofs[i];
-                col=dofs[i];
+                col  = ( csc->dof > 0 ) ? i        : dofs[i];
                 for( k=csc->colptr[i]; k<csc->colptr[i+1]; k++ )
                 {
                     j = csc->rowptr[k-baseval]-baseval;
                     dofj = ( csc->dof > 0 ) ? csc->dof : dofs[j+1] - dofs[j];
-                    row=dofs[j];
+                    row  = ( csc->dof > 0 ) ? j        : dofs[j];
                     for(ii=0; ii<dofi; ii++)
                     {
                         for(jj=0; jj<dofj; jj++, valptr++)
@@ -133,12 +133,12 @@ z_spmGeCSCv(      int                 trans,
             for( i=0; i < csc->gN; i++ )
             {
                 dofi = ( csc->dof > 0 ) ? csc->dof : dofs[i+1] - dofs[i];
-                col=dofs[i];
+                col  = ( csc->dof > 0 ) ? i        : dofs[i];
                 for( k=csc->colptr[i]; k<csc->colptr[i+1]; k++ )
                 {
                     j = csc->rowptr[k-baseval]-baseval;
                     dofj = ( csc->dof > 0 ) ? csc->dof : dofs[j+1] - dofs[j];
-                    row=dofs[j];
+                    row  = ( csc->dof > 0 ) ? j        : dofs[j];
                     for(ii=0; ii<dofi; ii++)
                     {
                         for(jj=0; jj<dofj; jj++, valptr++)
@@ -250,12 +250,12 @@ z_spmSyCSCv(      pastix_complex64_t  alpha,
         for( i=0; i < csc->gN; i++ )
         {
             dofi = ( csc->dof > 0 ) ? csc->dof : dofs[i+1] - dofs[i];
-            col = dofs[i];
+            col  = ( csc->dof > 0 )  ? i        : dofs[i];
             for( k=csc->colptr[i]; k<csc->colptr[i+1]; k++ )
             {
                 j = csc->rowptr[k-baseval]-baseval;
                 dofj = ( csc->dof > 0 ) ? csc->dof : dofs[j+1] - dofs[j];
-                row = dofs[j];
+                row  = ( csc->dof > 0 ) ? j        : dofs[j];
                 for(ii=0; ii<dofi; ii++)
                 {
                     for(jj=0; jj<dofj; jj++, valptr++)
@@ -351,12 +351,12 @@ z_spmHeCSCv(      pastix_complex64_t  alpha,
         for( i=0; i < csc->gN; i++ )
         {
             dofi = ( csc->dof > 0 ) ? csc->dof : dofs[i+1] - dofs[i];
-            col = dofs[i];
+            col  = ( csc->dof > 0 ) ? i        : dofs[i];
             for( k=csc->colptr[i]; k<csc->colptr[i+1]; k++ )
             {
                 j = csc->rowptr[k-baseval]-baseval;
                 dofj = ( csc->dof > 0 ) ? csc->dof : dofs[j+1] - dofs[j];
-                row = dofs[j];
+                row  = ( csc->dof > 0 ) ? j        : dofs[j];
                 for(ii=0; ii<dofi; ii++)
                 {
                     for(jj=0; jj<dofj; jj++, valptr++)
diff --git a/z_spm_norm.c b/z_spm_norm.c
index 9d45ade431fed243e4d3debefbbbe6abd6e9c73b..549a14158d08d9bb41f9303f04213968e822fdbc 100644
--- a/z_spm_norm.c
+++ b/z_spm_norm.c
@@ -229,7 +229,7 @@ z_spmInfNorm( const pastix_spm_t *spm )
             {
                 j = spm->rowptr[k - baseval] - baseval;
                 dofj = ( spm->dof > 0 ) ? spm->dof : dofs[j+1] - dofs[j];
-                row = dofs[j];
+                row  = ( spm->dof > 0 ) ? j        : dofs[j];
                 for(ii=0; ii < dofi; ii++)
                 {
                     for(jj=0; jj < dofj; jj++, valptr++)
@@ -248,7 +248,7 @@ z_spmInfNorm( const pastix_spm_t *spm )
             valptr = (pastix_complex64_t*)spm->values;
             for(i=0; i < spm->n; i++)
             {
-                col = dofs[i];
+                col  = ( spm->dof > 0 ) ? i        : dofs[i];
                 dofi = ( spm->dof > 0 ) ? spm->dof : dofs[i+1] - dofs[i];
                 for(k=spm->colptr[i]; k < spm->colptr[i+1]; k++)
                 {
@@ -381,7 +381,7 @@ z_spmOneNorm( const pastix_spm_t *spm )
 
         for(i=0; i < spm->n; i++)
         {
-            col = dofs[i];
+            col  = ( spm->dof > 0 ) ? i        : dofs[i];
             dofi = ( spm->dof > 0 ) ? spm->dof : dofs[i+1] - dofs[i];
             for(k=spm->colptr[i]; k < spm->colptr[i+1]; k++)
             {
@@ -409,7 +409,7 @@ z_spmOneNorm( const pastix_spm_t *spm )
                 for(k=spm->colptr[i]; k < spm->colptr[i+1]; k++)
                 {
                     j = spm->rowptr[k - baseval] - baseval;
-                    row = dofs[j];
+                    row  = ( spm->dof > 0 ) ? j        : dofs[j];
                     dofj = ( spm->dof > 0 ) ? spm->dof : dofs[j+1] - dofs[j];
                     if(i != j)
                     {
@@ -417,7 +417,6 @@ z_spmOneNorm( const pastix_spm_t *spm )
                         {
                             for(jj=0; jj < dofj; jj++, valptr++)
                             {
-
                                 sumrow[row + jj] += cabs( *valptr );
                             }
                         }