Index: ../trunk-jpl/src/c/cores/adjointstressbalance_core.cpp
===================================================================
--- ../trunk-jpl/src/c/cores/adjointstressbalance_core.cpp	(revision 18826)
+++ ../trunk-jpl/src/c/cores/adjointstressbalance_core.cpp	(revision 18827)
@@ -15,16 +15,29 @@
 	bool isFS;
 	bool save_results;
 	bool conserve_loads   = true;
+	int fe_FS;
 
 	/*retrieve parameters:*/
 	femmodel->parameters->FindParam(&isFS,FlowequationIsFSEnum);
 	femmodel->parameters->FindParam(&save_results,SaveResultsEnum);
+	femmodel->parameters->FindParam(&fe_FS,FlowequationFeFSEnum);
 
 	/*Compute velocities*/
 	if(VerboseSolution()) _printf0_("   computing velocities\n");
 	femmodel->SetCurrentConfiguration(StressbalanceAnalysisEnum);
-	solutionsequence_nonlinear(femmodel,conserve_loads); 
 
+	if(VerboseSolution()) _printf0_("   computing velocities\n");
+	femmodel->SetCurrentConfiguration(StressbalanceAnalysisEnum);
+	if(isFS){
+		if (fe_FS==LATaylorHoodEnum || fe_FS==LACrouzeixRaviartEnum)
+		 solutionsequence_la(femmodel);
+		else
+		 solutionsequence_nonlinear(femmodel,conserve_loads); 
+	}
+	else{
+		solutionsequence_nonlinear(femmodel,conserve_loads); 
+	}
+
 	/*Call SurfaceAreax, because some it might be needed by PVector*/
 	SurfaceAreax(NULL,femmodel);
 
@@ -36,11 +49,15 @@
 	/*Save results*/
 	if(save_results || true){
 		if(VerboseSolution()) _printf0_("   saving results\n");
-		if (isFS){
-			//int outputs[4] = {AdjointxEnum,AdjointyEnum,AdjointzEnum,AdjointpEnum};
-			//femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],4);
-			int outputs[3] = {AdjointxEnum,AdjointyEnum,AdjointpEnum};
-			femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],3);
+		if(isFS){
+			if(fe_FS==LATaylorHoodEnum || fe_FS==LACrouzeixRaviartEnum){
+				int outputs[2] = {AdjointxEnum,AdjointyEnum};
+				femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],2);
+			}
+			else{
+				int outputs[3] = {AdjointxEnum,AdjointyEnum,AdjointpEnum};
+				femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],3);
+			}
 		}
 		else{
 			int outputs[2] = {AdjointxEnum,AdjointyEnum};
