Index: code/hud/hudescort.cpp
===================================================================
--- code/hud/hudescort.cpp	(revision 8898)
+++ code/hud/hudescort.cpp	(working copy)
@@ -464,12 +464,15 @@
 // ----------------------------------------------------------------------
 // hud_escort_clear_all()
 //
-void hud_escort_clear_all()
+void hud_escort_clear_all(bool clear_flags)
 {
 	int i;
 
 	Num_escort_ships = 0;
 	for ( i = 0; i < Max_escort_ships; i++ ) {
+		if(clear_flags && (Escort_ships[i].objnum >= 0) && (Objects[Escort_ships[i].objnum].type == OBJ_SHIP) && (Objects[Escort_ships[i].objnum].instance >= 0)){
+			Ships[Objects[Escort_ships[i].objnum].instance].flags &= ~SF_ESCORT;
+		}
 		Escort_ships[i].obj_signature = -99;
 		Escort_ships[i].np_id = -1;
 		shield_info_reset(&Escort_ships[i].hit_info);
Index: code/hud/hudescort.h
===================================================================
--- code/hud/hudescort.h	(revision 8898)
+++ code/hud/hudescort.h	(working copy)
@@ -26,7 +26,7 @@
 void	hud_setup_escort_list(int level = 1);
 void	hud_escort_view_toggle();
 void	hud_add_remove_ship_escort(int objnum, int supress_feedback = 0);
-void	hud_escort_clear_all();
+void	hud_escort_clear_all(bool clear_flags = false);
 void	hud_escort_ship_hit(object *objp, int quadrant);
 void	hud_escort_target_next();
 void	hud_escort_cull_list();
Index: code/io/keycontrol.cpp
===================================================================
--- code/io/keycontrol.cpp	(revision 8898)
+++ code/io/keycontrol.cpp	(working copy)
@@ -2479,7 +2479,7 @@
 
 		case ESCORT_CLEAR:
 			control_used(ESCORT_CLEAR);
-			hud_escort_clear_all();
+			hud_escort_clear_all(true);
 			break;
 
 		case TARGET_NEXT_ESCORT_SHIP:
