diff --git a/z_spm_convert_to_csc.c b/z_spm_convert_to_csc.c
index 45acca7d8d0546838156d1d225ef96c947cff519..3c66d83277809c96705bd94a0de6d712708d7283 100644
--- a/z_spm_convert_to_csc.c
+++ b/z_spm_convert_to_csc.c
@@ -160,11 +160,15 @@ z_spmConvertCSR2CSC( pastix_spm_t *spm )
     {
         /* Similar to PastixSymmetric case with conjugate of the values */
         pastix_complex64_t *valptr = spm->values;
-        pastix_int_t i;
-
-        for(i=0; i<spm->nnz; i++, valptr++){
-            if (spm->rowptr[i] != spm->colptr[i]) {
-                *valptr = conj( *valptr );
+        pastix_int_t *colptr = spm->colptr;
+        pastix_int_t *rowptr = spm->rowptr;
+        pastix_int_t  i, j;
+
+        for(i=0; i<spm->n; i++, rowptr++){
+            for(j=rowptr[0]; j<rowptr[1]; j++, colptr++, valptr++) {
+                if ( *colptr != i ) {
+                    *valptr = conj( *valptr );
+                }
             }
         }
     }
diff --git a/z_spm_convert_to_csr.c b/z_spm_convert_to_csr.c
index f940ddb2e6cc311ff5c65258bec9f3239730d8a4..c490d3c6592470773bf0c674e800db1e7754f375 100644
--- a/z_spm_convert_to_csr.c
+++ b/z_spm_convert_to_csr.c
@@ -51,11 +51,15 @@ z_spmConvertCSC2CSR( pastix_spm_t *spm )
     {
         /* Similar to PastixSymmetric case with conjugate of the values */
         pastix_complex64_t *valptr = spm->values;
-        pastix_int_t i;
-
-        for(i=0; i<spm->nnz; i++, valptr++){
-            if (spm->rowptr[i] != spm->colptr[i]) {
-                *valptr = conj( *valptr );
+        pastix_int_t *colptr = spm->colptr;
+        pastix_int_t *rowptr = spm->rowptr;
+        pastix_int_t  i, j;
+
+        for(j=0; j<spm->n; j++, colptr++){
+            for(i=colptr[0]; i<colptr[1]; i++, rowptr++, valptr++) {
+                if ( *rowptr != j ) {
+                    *valptr = conj( *valptr );
+                }
             }
         }
     }