diff --git a/src/electrophysiology/solvers/LinearImplicitSolver.cpp b/src/electrophysiology/solvers/LinearImplicitSolver.cpp
index b0b65bb2acf179db4b32cf49dc0cfb7f7372df2f..09a8fd3c87031396f95debcf5596602cc39ae001 100644
--- a/src/electrophysiology/solvers/LinearImplicitSolver.cpp
+++ b/src/electrophysiology/solvers/LinearImplicitSolver.cpp
@@ -474,7 +474,14 @@ void SemiImplicitSolverOnCells::SolvePDEOnCells(IElphyAssemble &A){
 
   for (cell c = (*potential).cells(); c != (*potential).cells_end(); ++c) {
     ScalarElement E((*potential),*c);
-    (*vcw_c)[0](c(),0) = E.Value(c.LocalCenter(),(*potential));
+    double A = 0;
+    double V = 0;
+    for (int q = 0; q < E.nQ(); ++q) {
+      double w = E.QWeight(q);
+      A += w;
+      V += w * E.Value(q, *potential, 0);
+      (*vcw_c)[0](c(),0) = V / A; // E.Value(c.LocalCenter(),(*potential));
+    }
   }
 }
 void SemiImplicitSolverOnCells::SolvePDE(IElphyAssemble &A){