Index: modelanim.cpp
===================================================================
--- modelanim.cpp	(revision 8340)
+++ modelanim.cpp	(working copy)

@@ -723,11 +726,33 @@
 				pss->submodel_info_1.angs.h = psub->triggers[i].angle.xyz.y;
 				pss->submodel_info_2.angs.p = psub->triggers[i].angle.xyz.x;
 			} else {
-				if (psub->triggers[i].type == TRIGGER_TYPE_INITIAL)
+				if (psub->triggers[i].type == TRIGGER_TYPE_INITIAL) {
 					pss->trigger.set_to_end(&psub->triggers[i]);
+
+					//And now actually APPLY the initial angle data to the subobjects themselves!
+					pss->submodel_info_1.angs.p = pss->trigger.current_ang.xyz.x;
+					pss->submodel_info_1.angs.h = pss->trigger.current_ang.xyz.y;
+					pss->submodel_info_1.angs.b = pss->trigger.current_ang.xyz.z;
+
+					if (pss->submodel_info_1.angs.p > PI2)
+						pss->submodel_info_1.angs.p -= PI2;
+					else if (pss->submodel_info_1.angs.p < 0.0f)
+						pss->submodel_info_1.angs.p += PI2;
+
+					if (pss->submodel_info_1.angs.h > PI2)
+						pss->submodel_info_1.angs.h -= PI2;
+					else if (pss->submodel_info_1.angs.h < 0.0f)
+						pss->submodel_info_1.angs.h += PI2;
+
+					if (pss->submodel_info_1.angs.b > PI2)
+						pss->submodel_info_1.angs.b -= PI2;
+					else if (pss->submodel_info_1.angs.b < 0.0f)
+						pss->submodel_info_1.angs.b += PI2;
 			}
+
 		}
 	}
+	}
 }
 
 /**
