Index: /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp	(revision 16980)
+++ /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp	(revision 16981)
@@ -162,5 +162,4 @@
 			basalelement->NodalFunctions(basis,gauss);
 			D_scalar=epl_specificstoring*epl_thickness*gauss->weight*Jdet;
-
 			TripleMultiply(basis,numnodes,1,0,
 						&D_scalar,1,1,0,
@@ -198,8 +197,8 @@
 
 	/*Check that all nodes are active, else return empty matrix*/
-	if(basalelement->AllActive()) return NULL;
+	if(!basalelement->AllActive()) return NULL;
 
 	/*Intermediaries */
-	IssmDouble dt,scalar,water_head;
+	IssmDouble dt,scalar,water_head,connectivity;
 	IssmDouble transfer,residual,epl_thickness;
 	IssmDouble Jdet;
@@ -208,5 +207,6 @@
 
 	/*Fetch number of nodes and dof for this finite element*/
-	int numnodes = basalelement->GetNumberOfNodes();
+	int numnodes    = basalelement->GetNumberOfNodes();
+	int numvertices = basalelement->GetNumberOfVertices();
 
 	/*Initialize Element vector*/
@@ -244,4 +244,15 @@
 			for(int i=0;i<numnodes;i++) pe->values[i]+=scalar*basis[i];
 		}
+	}
+	delete gauss;
+
+	/*	Add residual if necessary*/
+	gauss=basalelement->NewGauss();
+	for(int iv=0;iv<numvertices;iv++){
+		gauss->GaussVertex(iv);
+
+		connectivity = IssmDouble(basalelement->VertexConnectivity(iv));
+		residual_input->GetInputValue(&residual,gauss);
+		pe->values[iv]+=residual/connectivity;
 	}
 
