diff --git a/utils/sislin.c b/utils/sislin.c
index 875f6dad3a868cbd52265ba7154ec19328283023..610b11811d267212025f7d4b228cfa5065f9e131 100644
--- a/utils/sislin.c
+++ b/utils/sislin.c
@@ -128,7 +128,10 @@ void iniSisLin (SistLinear_t *SL, tipoSistLinear_t tipo, real_t coef_max)
     else if (tipo == diagDominante) {
       // aumenta o expoente dos termos da diagonal principal
       for (unsigned int i=0; i<n; ++i) {
-        SL->A[i][i] *= (real_t)n;
+	real_t soma = 0.0;
+	for (unsigned int j=0; j < i; ++j) soma += SL->A[i][j];
+	for (unsigned int j=i+1; j < n; ++j) soma += SL->A[i][j];
+        SL->A[i][i] += soma;
       }
     }
   }