Index: fs2_open/code/ai/aicode.cpp
===================================================================
--- fs2_open/code/ai/aicode.cpp    (revision 8915)
+++ fs2_open/code/ai/aicode.cpp    (working copy)
@@ -11999,6 +11999,11 @@ void ai_maybe_evade_locked_missile(object *objp, ai_info *aip)
 		return;
 	}
 
+	// don't evade missiles if you're docked
+	if (object_is_docked(objp)) {
+		return;
+	}
+
 	if (aip->ai_flags & (AIF_NO_DYNAMIC | AIF_KAMIKAZE)) {	//	If not allowed to pursue dynamic objectives, don't evade.  Dumb?  Maybe change. -- MK, 3/15/98
 		return;
 	}
@@ -12097,6 +12102,11 @@ void maybe_evade_dumbfire_weapon(ai_info *aip)
 		return;
 	}
 
+	// don't evade dumbfires if you're docked
+	if (object_is_docked(Pl_objp)) {
+		return;
+	}
+
 	//	Make sure in a mode in which we evade dumbfire weapons.
 	switch (aip->mode) {
 	case AIM_CHASE:
@@ -14635,7 +14645,7 @@ void ai_ship_hit(object *objp_ship, object *hit_objp, vec3d *hitpos, int shield_
 		
 		//	Hit by a protected ship, don't attack it.
 		if (objp_hitter->flags & OF_PROTECTED) {
-			if ((Ship_info[shipp->ship_info_index].flags & (SIF_FIGHTER | SIF_BOMBER)) && (aip->target_objnum == -1)) {
+			if (((Ship_info[shipp->ship_info_index].flags & (SIF_FIGHTER | SIF_BOMBER)) && (aip->target_objnum == -1)) || !object_is_docked(objp_ship)) {
 				if (aip->mode == AIM_CHASE) {
 					if (aip->submode != SM_EVADE_WEAPON) {
 						aip->mode = AIM_CHASE;
