diff --git a/src/libsparseSolver/CGSolver.cpp b/src/libsparseSolver/CGSolver.cpp
index 6a510da2f37fc9b6dd3575bcfc49e0a95ae5cb57..0ec2976ec604c25ac6ffb6e87d7e8fde46f09198 100644
--- a/src/libsparseSolver/CGSolver.cpp
+++ b/src/libsparseSolver/CGSolver.cpp
@@ -134,7 +134,7 @@ int CGSolver::SolveLinearSystemWithoutPreconditioner(double * x, const double *
     iteration++;
   }
 
-  return (iteration-1) * ((residualNorm2 > eps * eps * initialResidualNorm2) ? -1 : 1);
+  return (iteration-1) * ((residualNorm2 > eps * eps * initialResidualNorm2) ? 1 : 0);
 }
 
 int CGSolver::SolveLinearSystemWithJacobiPreconditioner(double * x, const double * b, double eps, int maxIterations, int verbose)
@@ -204,7 +204,7 @@ int CGSolver::SolveLinearSystemWithJacobiPreconditioner(double * x, const double
     printf("Warning: residualNorm2=%G is negative. Input matrix might not be SPD. Solution could be incorrect.\n", residualNorm2);
   }
 
-  return (iteration-1) * ((residualNorm2 > eps * eps * initialResidualNorm2) ? -1 : 1);
+  return (iteration-1) * ((residualNorm2 > eps * eps * initialResidualNorm2) ? 1 : 0);
 }
 
 double CGSolver::ComputeDotProduct(double * v1, double * v2)