Index: code/fred2/fredview.cpp
===================================================================
--- code/fred2/fredview.cpp	(revision 5786)
+++ code/fred2/fredview.cpp	(working copy)
@@ -2446,7 +2446,7 @@
 					}
 				}
 
-				if (!count){
+				if (!count && Ships[i].weapons.num_secondary_banks > 0){
 					if (error("Player \"%s\" has no secondary weapons.  Should have at least 1", Ships[i].ship_name)){
 						return 1;
 					}
Index: code/ship/ship.cpp
===================================================================
--- code/ship/ship.cpp	(revision 5786)
+++ code/ship/ship.cpp	(working copy)
@@ -8082,6 +8082,7 @@
 	ship_info	*sip;
 	ship_info	*sip_orig;
 	ship			*sp;
+	ship_weapon *swp;
 	object		*objp;
 	p_object	*p_objp;
 	float hull_pct, shield_pct;
@@ -8090,6 +8091,7 @@
 	Assert( n >= 0 && n < MAX_SHIPS );
 	sp = &Ships[n];
 	sip = &(Ship_info[ship_type]);
+	swp = &sp->weapons;
 	sip_orig = &Ship_info[sp->ship_info_index];
 	objp = &Objects[sp->objnum];
 
@@ -8291,6 +8293,12 @@
 		}
 	}//end AB trails -Bobboau
 
+	// Chief1983: Make sure that when changing to a new ship with secondaries, you switch to bank 0.  They still won't 
+	// fire if the SF2_SECONDARIES_LOCKED flag is on as this should have carried over.
+	if ( swp->num_secondary_banks > 0 && swp->current_secondary_bank == -1 ){
+		swp->current_secondary_bank = 0;
+	}
+
 /*
 	Goober5000 (4/17/2005) - I'm commenting this out for the time being; it looks like a whole bunch of unneeded
 	code.  It should be (and probably is) handled elsewhere, like ship_set or ship_create or something.  Contact
