Index: code/model/model.h
===================================================================
--- code/model/model.h	(revision 9449)
+++ code/model/model.h	(working copy)
@@ -141,6 +141,10 @@
 
 #define NUM_SUBSYSTEM_FLAGS			33
 
+// all subsys flags set in model file, used to copy only these flags for different table entries using the same model
+#define MSS_MODEL_FLAG				(MSS_FLAG_CREWPOINT | MSS_FLAG_ROTATES | MSS_FLAG_TRIGGERED | MSS_FLAG_ARTILLERY | MSS_FLAG_STEPPED_ROTATE)
+#define MSS_MODEL_FLAG2				0
+
 // definition of stepped rotation struct
 typedef struct stepped_rotation {
 	int num_steps;				// number of steps in complete revolution
Index: code/model/modelread.cpp
===================================================================
--- code/model/modelread.cpp	(revision 9449)
+++ code/model/modelread.cpp	(working copy)
@@ -404,7 +404,8 @@
 		for ( j = 0; j < n_subsystems; j++ ) {
 			dest = &d_sp[j];
 			if ( !subsystem_stricmp( source->subobj_name, dest->subobj_name) ) {
-				dest->flags = source->flags;
+				dest->flags |= (source->flags & MSS_MODEL_FLAG);
+				dest->flags2 |= (source->flags2 & MSS_MODEL_FLAG2);
 				dest->subobj_num = source->subobj_num;
 				dest->model_num = source->model_num;
 				dest->pnt = source->pnt;
