Index: parse/sexp.cpp
===================================================================
--- parse/sexp.cpp	(revision 5681)
+++ parse/sexp.cpp	(working copy)
@@ -3730,6 +3730,7 @@
 #define OSWPT_TYPE_TEAM			4
 #define OSWPT_TYPE_PARSE_OBJECT	5
 #define OSWPT_TYPE_EXITED		6
+#define OSWPT_TYPE_FUTURE_WING	7
 
 // Goober5000
 typedef struct object_ship_wing_point_team
@@ -3838,22 +3839,21 @@
 
 
 	// at this point, we must have a wing or point for a target
-	wing_num = wing_name_lookup(object_name);
+	wing_num = wing_name_lookup(object_name, 1);
 	if (wing_num >= 0)
 	{
 		wing *wingp = &Wings[wing_num];
 
 		// make sure that at least one ship exists and that the wing leader is valid
 		if ( (wingp->current_count >= 0) && (wingp->ship_index[wingp->special_ship] >= 0) )
-		{
 			oswpt->type = OSWPT_TYPE_WING;
-
-			// point to wing leader
-			oswpt->wingp = wingp;
-			oswpt->shipp = &Ships[wingp->ship_index[wingp->special_ship]];
-			oswpt->objp = &Objects[oswpt->shipp->objnum];
-		}
-
+		else 
+			oswpt->type = OSWPT_TYPE_FUTURE_WING;  
+		// point to wing leader
+		oswpt->wingp = wingp;
+		oswpt->shipp = &Ships[wingp->ship_index[wingp->special_ship]];
+		oswpt->objp = &Objects[oswpt->shipp->objnum];
+		
 		return;
 	}
 
@@ -7602,6 +7602,7 @@
 
 			// change wing (we must set the flags for all ships present as well as all ships yet to arrive)
 			case OSWPT_TYPE_WING:
+			case OSWPT_TYPE_FUTURE_WING:
 			{
 				// current ships
 				for (int i = 0; i < oswpt.wingp->current_count; i++)
@@ -7699,6 +7700,7 @@
 
 			// change wing (we must set the flags for all ships present as well as all ships yet to arrive)
 			case OSWPT_TYPE_WING:
+			case OSWPT_TYPE_FUTURE_WING:
 			{
 				// current ships
 				for (i = 0; i < oswpt.wingp->current_count; i++)
@@ -11436,6 +11438,7 @@
 
 			// change wing (we must set the flags for all ships present as well as all ships yet to arrive)
 			case OSWPT_TYPE_WING:
+			case OSWPT_TYPE_FUTURE_WING:
 			{
 				// current ships
 				for (int i = 0; i < oswpt.wingp->current_count; i++)
@@ -11518,6 +11521,7 @@
 
 			// change wing (we must set the flags for all ships present as well as all ships yet to arrive)
 			case OSWPT_TYPE_WING:
+			case OSWPT_TYPE_FUTURE_WING:
 			{		
 				// current ships
 				for (int i = 0; i < oswpt.wingp->current_count; i++)
@@ -22037,6 +22041,9 @@
 	// Goober5000 - added wing capability
 	{ OP_CHANGE_IFF, "Change IFF (Action operator)\r\n"
 		"\tSets the specified ship(s) or wing(s) to the specified team.\r\n"
+		"\tFor wings:  If wing names are supplied current and future waves are changed.\r\n"
+		"\tFor wings:  If ship names are supplied and wing has not arrive yet all waves are chagned.\r\n"
+		"\tFor wings:  If ship names are supplied and wing has arrive only the current ships are changed.\r\n"
 		"Takes 2 or more arguments...\r\n"
 		"\t1:\tTeam to change to (\"friendly\", \"hostile\" or \"unknown\").\r\n"
 		"\tRest:\tName of ship or wing to change team status of." },
@@ -22044,6 +22051,9 @@
 	// Wanderer
 	{ OP_CHANGE_IFF_COLOR, "Change IFF Color (Action operator)\r\n"
 		"\tSets the specified ship(s) or wing(s) apparent color.\r\n"
+		"\tFor wings:  If wing names are supplied current and future waves are changed.\r\n"
+		"\tFor wings:  If ship names are supplied and wing has not arrive yet all waves are chagned.\r\n"
+		"\tFor wings:  If ship names are supplied and wing has arrive only the current ships are changed.\r\n"
 		"Takes 6 or more arguments...\r\n"
 		"\t1:\tName of the team from which target is observed from.\r\n"
 		"\t2:\tName of the team of the observed target to receive the alternate color.\r\n"
@@ -22923,8 +22933,11 @@
 	// Goober5000
 	{ OP_SHIP_CHANGE_ALT_NAME, "ship-change-alt-name\r\n"
 		"\tChanges the alternate ship class name displayed in the HUD target window.  Takes 2 or more arguments...\r\n"
+		"\tFor wings:  If wing names are supplied current and future waves are changed.\r\n"
+		"\tFor wings:  If ship names are supplied and wing has not arrive yet all waves are chagned.\r\n"
+		"\tFor wings:  If ship names are supplied and wing has arrive only the current ships are changed.\r\n"
 		"\t1:\tThe ship class name to display\r\n"
-		"\tRest:\tThe ships to display the new class name" },
+		"\tRest:\tThe ships or wings to display the new class name" },
 
 	// Goober5000
 	{ OP_SET_DEATH_MESSAGE, "set-death-message\r\n"
@@ -23486,15 +23499,21 @@
 
 	//-Sesquipedalian
 	{ OP_KAMIKAZE, "kamikaze\r\n"
-		"\tTells ships to perform a kamikaze on its current target. Takes 2 or more arguments...\r\n"
+		"\tTells ships or wings to perform a kamikaze on its current target. Takes 2 or more arguments...\r\n"
+		"\tFor wings:  If wing names are supplied current and future waves are changed.\r\n"
+		"\tFor wings:  If ship names are supplied and wing has not arrive yet all waves are chagned.\r\n"
+		"\tFor wings:  If ship names are supplied and wing has arrive only the current ships are changed.\r\n"
 		"\t1: Damage dealt when kamikaze is done\r\n"
-		"\tRest: Names of ships to perform kamikaze\r\n"
+		"\tRest: Names of ships or wings to perform kamikaze\r\n"
 	},
 	
 	//-Sesquipedalian
 	{ OP_NOT_KAMIKAZE, "not-kamikaze\r\n"
-		"\tTells ships abort a kamikaze run  Takes 1 or more arguments....\r\n"
-		"\tAll: Names of ships to abort kamikaze\r\n"
+		"\tTells ships or wings to abort a kamikaze run  Takes 1 or more arguments....\r\n"
+		"\tFor wings:  If wing names are supplied current and future waves are changed.\r\n"
+		"\tFor wings:  If ship names are supplied and wing has not arrive yet all waves are chagned.\r\n"
+		"\tFor wings:  If ship names are supplied and wing has arrive only the current ships are changed.\r\n"
+		"\tAll: Names of ships or wings to abort kamikaze\r\n"
 	},
 
 	//phreak
