Index: fs2_open/code/fred2/shipeditordlg.cpp
===================================================================
--- fs2_open/code/fred2/shipeditordlg.cpp	(revision 6012)
+++ fs2_open/code/fred2/shipeditordlg.cpp	(working copy)
@@ -1253,9 +1253,16 @@
 	if (strlen(m_cargo1)) {
 		z = string_lookup(m_cargo1, Cargo_names, Num_cargo);
 		if (z == -1) {
-			Assert(Num_cargo < MAX_CARGO);
-			z = Num_cargo++;
-			strcpy(Cargo_names[z], m_cargo1);
+			if (Num_cargo < MAX_CARGO) {
+				z = Num_cargo++;
+				strcpy(Cargo_names[z], m_cargo1);
+			}
+			else {
+				#define _QUOTE(x) #x
+				#define _QUOTEVAR(x) _QUOTE(x)
+				MessageBox("Maximum number of cargo names (" _QUOTEVAR(MAX_CARGO) ") reached.\n"
+					"Ignoring new name.\n", "Error", MB_ICONEXCLAMATION);
+			}
 		}
 
 		MODIFY(Ships[ship].cargo1, (char)z);
