Index: code/mission/missionmessage.cpp
===================================================================
--- code/mission/missionmessage.cpp	(revision 10943)
+++ code/mission/missionmessage.cpp	(working copy)
@@ -344,7 +344,7 @@
 }
 
 // parses an individual message
-void message_parse(bool importing_from_fsm)
+void message_parse(bool importing_from_fsm, bool builtin)
 {
 	MissionMessage msg;
 	char persona_name[NAME_LENGTH];
@@ -467,6 +467,18 @@
 		}
 	}
 
+	// Default append_suffix based on whether we are parsing messages.tbl or adding a custom message,
+	// then check for the flag. -Chief1983
+	if(builtin) {
+		msg.append_suffix = true;
+	}
+	else {
+		msg.append_suffix = false;
+	}
+	if(optional_string("$Append Suffix")){
+		stuff_boolean(&msg.append_suffix);
+	}
+
 	Num_messages++;
 	Messages.push_back(msg); 
 }
@@ -579,7 +591,7 @@
 
 	required_string("#Messages");
 	while (required_string_either("#End", "$Name:")){
-		message_parse();
+		message_parse(false, true);
 	}
 
 	required_string("#End");
@@ -1169,8 +1181,9 @@
 
 	// support ships use a wingman head.
 	// terran command uses its own set of heads.
+	// Added option to always use the actual file for mods that don't have a,b & c, versions by enabling $Append Suffix
 	int subhead_selected = FALSE;
-	if ( (q->message_num < Num_builtin_messages) || !(_strnicmp(HEAD_PREFIX_STRING, ani_name, strlen(HEAD_PREFIX_STRING)-1)) ) {
+	if (m->append_suffix && ( (q->message_num < Num_builtin_messages) || !(_strnicmp(HEAD_PREFIX_STRING, ani_name, strlen(HEAD_PREFIX_STRING)-1)) )) {
 		persona_index = m->persona_index;
 		
 		// if this ani should be converted to a terran command, set the persona to the command persona
@@ -2287,6 +2300,7 @@
 	msg.multi_team = multi_team;
 	msg.avi_info.index = -1;
 	msg.wave_info.index = -1;
+	msg.append_suffix = false;
 	Messages.push_back(msg);
 	Num_messages++;
 
Index: code/mission/missionmessage.h
===================================================================
--- code/mission/missionmessage.h	(revision 10943)
+++ code/mission/missionmessage.h	(working copy)
@@ -124,6 +124,7 @@
 	int	multi_team;								// multiplayer team filter (important for TvT only)
 	int				mood;
 	SCP_vector<int> excluded_moods;
+	bool append_suffix;
 
 	// unions for avi/wave information.  Because of issues with Fred, we are using
 	// the union to specify either the index into the avi or wave arrays above,
@@ -189,7 +190,7 @@
 
 // function to parse a message from either messages.tbl or the mission file.  Both files have the
 // exact same format, so this function just gets reused in both instances.
-void	message_parse(bool importing_from_fsm = false);
+void	message_parse(bool importing_from_fsm = false, bool builtin = false);
 void	persona_parse();
 
 void	messages_init();
