diff --git a/src/g_shared/sbarinfo_display.cpp b/src/g_shared/sbarinfo_display.cpp
index 2ea0659942..8f4e74de58 100644
--- a/src/g_shared/sbarinfo_display.cpp
+++ b/src/g_shared/sbarinfo_display.cpp
@@ -1241,7 +1241,7 @@ void DSBarInfo::doCommands(SBarInfoBlock &block, int xOffset, int yOffset, int a
 				}
 				break;
 			case SBARINFO_USESSECONDARYAMMO:
-				if((CPlayer->ReadyWeapon->AmmoType2 != NULL && !(cmd.flags & SBARINFOEVENT_NOT)) ||
+				if((CPlayer->ReadyWeapon->AmmoType2 != NULL && CPlayer->ReadyWeapon->AmmoType2 != CPlayer->ReadyWeapon->AmmoType1 && !(cmd.flags & SBARINFOEVENT_NOT)) ||
 					(CPlayer->ReadyWeapon->AmmoType2 == NULL && cmd.flags & SBARINFOEVENT_NOT))
 				{
 					doCommands(cmd.subBlock, xOffset, yOffset, alpha);
diff --git a/src/g_shared/sbarinfo_parser.cpp b/src/g_shared/sbarinfo_parser.cpp
index ba386d3672..2f3ef877ee 100644
--- a/src/g_shared/sbarinfo_parser.cpp
+++ b/src/g_shared/sbarinfo_parser.cpp
@@ -272,7 +272,7 @@ void SBarInfo::ParseSBarInfo(int lump)
 						{
 							sc.ScriptError("Unkown flag '%s'.", sc.String);
 						}
-						if(!sc.CheckToken('|') || !sc.CheckToken(','))
+						if(!sc.CheckToken('|') && !sc.CheckToken(','))
 							goto FinishStatusBar; //No more args so we must skip over anything else and go to the end.
 					}
 					sc.MustGetToken(TK_FloatConst);