Index: network/multimsgs.cpp
===================================================================
--- network/multimsgs.cpp	(revision 9500)
+++ network/multimsgs.cpp	(working copy)
@@ -1499,6 +1499,11 @@
 	}
 
 	// add the current skill level setting on the host
+	// sanity check - reset skill level to default before sending if out of range
+	if (Game_skill_level < 0 || Game_skill_level >= NUM_SKILL_LEVELS) {
+		Warning(LOCATION, "Trying to send packet containing invalid skill level %i! Valid range 0 to %i. Resetting to default.", Game_skill_level, NUM_SKILL_LEVELS);
+		Game_skill_level = NUM_SKILL_LEVELS / 2;  
+	}
 	ADD_INT(Game_skill_level);
 
 	// add this guys player num 
@@ -1595,6 +1600,10 @@
 
 	// get the skill level setting
 	GET_INT(Game_skill_level);
+	if (Game_skill_level < 0 || Game_skill_level >= NUM_SKILL_LEVELS) {
+		Warning(LOCATION, "Received packet containing invalid skill level %i! Valid range 0 to %i.  Resetting to default.", Game_skill_level, NUM_SKILL_LEVELS);
+		Game_skill_level = NUM_SKILL_LEVELS / 2;  
+	}
 
 	// get my netplayer number
 	GET_INT(my_player_num);
