Index: /issm/branches/trunk-larour-GRL2017/src/c/modules/Solverx/Solverx.cpp
===================================================================
--- /issm/branches/trunk-larour-GRL2017/src/c/modules/Solverx/Solverx.cpp	(revision 21605)
+++ /issm/branches/trunk-larour-GRL2017/src/c/modules/Solverx/Solverx.cpp	(revision 21606)
@@ -22,12 +22,20 @@
 	if(VerboseModule()) _printf0_("   Solving matrix system\n");
 
-	/*Initialize solver: */
-	solver=new Solver<IssmDouble>(Kff,pf,uf0,df,parameters);
+	if (pf->IsEmpty()){ 
+		/*no need to solve! return empty vector: */
+		uf=new Vector<IssmDouble>(0);
+	}
+	else{
+		/*Initialize solver: */
+		solver=new Solver<IssmDouble>(Kff,pf,uf0,df,parameters);
 
-	/*Solve:*/
-	uf=solver->Solve();
+		/*Solve:*/
+		uf=solver->Solve();
 
-	/*clean up and assign output pointers:*/
-	delete solver;
+		/*clean up: */
+		delete solver;
+	}
+		
+	/*assign output pointers:*/
 	*puf=uf;
 }
