Index: /issm/trunk/src/c/modules/PenaltySystemMatricesx/PenaltySystemMatricesx.cpp
===================================================================
--- /issm/trunk/src/c/modules/PenaltySystemMatricesx/PenaltySystemMatricesx.cpp	(revision 4271)
+++ /issm/trunk/src/c/modules/PenaltySystemMatricesx/PenaltySystemMatricesx.cpp	(revision 4272)
@@ -16,4 +16,6 @@
 	Load* load=NULL;
 	
+	int analysis_type;
+
 	/*First, get elements and loads configured: */
 	elements->  Configure(elements,loads, nodes,vertices, materials,parameters);
@@ -21,4 +23,7 @@
 	loads->     Configure(elements, loads, nodes,vertices, materials,parameters);
 	parameters->Configure(elements,loads, nodes,vertices, materials,parameters);
+
+	/*retrive parameters: */
+	parameters->FindParam(&analysis_type,AnalysisTypeEnum);
 
 	/*Now, figure out maximum value of K_gg, so that we can penalize it correctly: */
@@ -31,5 +36,5 @@
 		for (i=0;i<loads->Size();i++){
 			load=(Load*)loads->GetObjectByOffset(i);
-			load->PenaltyCreateKMatrix(Kgg,kmax);
+			if (load->InAnalysis(analysis_type)) load->PenaltyCreateKMatrix(Kgg,kmax);
 		}
 
@@ -46,5 +51,5 @@
 		for (i=0;i<loads->Size();i++){
 			load=(Load*)loads->GetObjectByOffset(i);
-			load->PenaltyCreatePVector(pg,kmax);
+			if (load->InAnalysis(analysis_type)) load->PenaltyCreatePVector(pg,kmax);
 		}
 
Index: /issm/trunk/src/c/modules/SystemMatricesx/SystemMatricesx.cpp
===================================================================
--- /issm/trunk/src/c/modules/SystemMatricesx/SystemMatricesx.cpp	(revision 4271)
+++ /issm/trunk/src/c/modules/SystemMatricesx/SystemMatricesx.cpp	(revision 4272)
@@ -54,8 +54,8 @@
 		}
 
-		/*Fill stiffness matrix from loads: */
+		/*Fill stiffness matrix from loads if loads have the current analysis_type: */
 		for (i=0;i<loads->Size();i++){
 			load=(Load*)loads->GetObjectByOffset(i);
-			load->CreateKMatrix(Kgg);
+			if (load->InAnalysis(analysis_type)) load->CreateKMatrix(Kgg);
 		}
 
@@ -78,8 +78,8 @@
 		}
 
-		/*Fill right hand side vector, from loads: */
+		/*Fill right hand side from loads if loads have the current analysis_type: */
 		for (i=0;i<loads->Size();i++){
 			load=(Load*)loads->GetObjectByOffset(i);
-			load->CreatePVector(pg);
+			if (load->InAnalysis(analysis_type)) load->CreatePVector(pg);
 		}
 
