Index: code/hud/hudtarget.cpp
===================================================================
--- code/hud/hudtarget.cpp	(revision 8833)
+++ code/hud/hudtarget.cpp	(working copy)
@@ -10,6 +10,7 @@
 
 
 
+#include "ai/ai.h"
 #include "hud/hud.h"
 #include "hud/hudparse.h"
 #include "hud/hudartillery.h"
@@ -2089,10 +2090,12 @@
 		}
 	}
 
+	int initial_attacked_objnum = attacked_objnum;
 	if (attacked_objnum == -1) {
 		attacked_objnum = player_obj_index;
 	}
 
+
 	// check all turrets if for player.
 	esct.check_all_turrets = (attacked_objnum == player_obj_index);
 	esct.filter = filter;
@@ -2108,6 +2111,11 @@
 		// fill in rest of esct
 		esct.shipp = shipp;
 
+			// Filter out any target that is not actually targeting the player  --Mastadon
+		if ( (initial_attacked_objnum == player_obj_index) && (Ai_info[shipp->ai_index].target_objnum != player_obj_index) ) {
+			continue;
+		}
+
 		// check each shipp on list and update nearest obj and subsys
 		evaluate_ship_as_closest_target(&esct);
 		if (esct.min_distance < min_distance) {
