Index: code/parse/sexp.cpp
===================================================================
--- code/parse/sexp.cpp	(revision 5893)
+++ code/parse/sexp.cpp	(working copy)
@@ -15299,6 +15299,12 @@
 		return SEXP_FALSE;
 	}
 
+	// primaries are linked. In this case this may not be
+	// marked as selected, but is active anyway
+	if(shipp->flags & SF_PRIMARY_LINKED) {
+		return SEXP_TRUE;
+	}
+
 	// is this the bank currently selected
 	if(bank == shipp->weapons.current_primary_bank){
 		return SEXP_TRUE;
