Index: code/ai/ai_profiles.cpp
===================================================================
--- code/ai/ai_profiles.cpp	(revision 6282)
+++ code/ai/ai_profiles.cpp	(working copy)
@@ -393,6 +393,8 @@
 
 			set_flag(profile, "$perform less checks for death screams:", AIPF2_PERFORM_LESS_SCREAM_CHECKS, AIP_FLAG2);
 
+			set_flag(profile, "$big ships manage shields:", AIPF2_BIG_SHIELD_MANAGE, AIP_FLAG2);
+
 			// if we've been through once already and are at the same place, force a move
 			if ( saved_Mp && (saved_Mp == Mp) )
 				Mp++;
Index: code/ai/ai_profiles.h
===================================================================
--- code/ai/ai_profiles.h	(revision 6282)
+++ code/ai/ai_profiles.h	(working copy)
@@ -54,6 +54,7 @@
 #define AIPF2_TURRETS_IGNORE_TARGET_RADIUS							(1 << 0)
 #define AIPF2_NO_SPECIAL_PLAYER_AVOID								(1 << 1)
 #define AIPF2_PERFORM_LESS_SCREAM_CHECKS							(1 << 2)
+#define AIPF2_BIG_SHIELD_MANAGE										(1 << 3)
 
 #define MAX_AI_PROFILES	5
 
Index: code/ai/aicode.cpp
===================================================================
--- code/ai/aicode.cpp	(revision 6282)
+++ code/ai/aicode.cpp	(working copy)
@@ -769,6 +769,8 @@
 	set_aic_flag(aicp, "$allow vertical dodge:", AIPF_ALLOW_VERTICAL_DODGE, AIP_FLAG);
 
 	set_aic_flag(aicp, "$no extra collision avoidance vs player:", AIPF2_NO_SPECIAL_PLAYER_AVOID, AIP_FLAG2);
+
+	set_aic_flag(aicp, "$big ships manage shields:", AIPF2_BIG_SHIELD_MANAGE, AIP_FLAG2);
 }
 
 void reset_ai_class_names()
@@ -12455,7 +12457,7 @@
 		// set timestamp
 		aip->shield_manage_timestamp = timestamp((int) (delay * 1000.0f));
 
-		if (sip->flags & SIF_SMALL_SHIP) {
+		if (sip->flags & SIF_SMALL_SHIP || (aip->ai_profile_flags2 & AIPF2_BIG_SHIELD_MANAGE)) {
 			if (Missiontime - aip->last_hit_time < F1_0*10)
 				ai_transfer_shield(objp, aip->last_hit_quadrant);
 			else
Index: code/globalincs/def_files.cpp
===================================================================
--- code/globalincs/def_files.cpp	(revision 6282)
+++ code/globalincs/def_files.cpp	(working copy)
@@ -990,6 +990,9 @@
 ;; before making it give a death scream					 				\n\
 $perform less checks for death screams:	NO								\n\
 																		\n\
+;; If set, allows shield management for large ships.					\n\
+$big ships manage shields:				NO								\n\
+																		\n\
 #End																	\n\
 ";
 
