diff --git a/src/doomstat.h b/src/doomstat.h
index ea4efaede09e92939d0f9f6a4ff32f90afb173e8..1a46e9b4cccf1f03a3cc33291c3bd95315e5c0c6 100644
--- a/src/doomstat.h
+++ b/src/doomstat.h
@@ -351,18 +351,18 @@ typedef struct
 } mapheader_t;
 
 // level flags
-#define LF_SCRIPTISFILE       1<<0 ///< True if the script is a file, not a lump.
-#define LF_SPEEDMUSIC         1<<1 ///< Speed up act music for super sneakers
-#define LF_NOSSMUSIC          1<<2 ///< Disable Super Sonic music
-#define LF_NORELOAD           1<<3 ///< Don't reload level on death
-#define LF_NOZONE             1<<4 ///< Don't include "ZONE" on level title
-#define LF_SAVEGAME           1<<5 ///< Save the game upon loading this level
-#define LF_MIXNIGHTSCOUNTDOWN 1<<6 ///< Play sfx_timeup instead of music change for NiGHTS countdown
-#define LF_WARNINGTITLE       1<<7 ///< WARNING! WARNING! WARNING! WARNING!
-
-#define LF_NOTITLECARDFIRST        1<<8
-#define LF_NOTITLECARDRESPAWN      1<<9
-#define LF_NOTITLECARDRECORDATTACK 1<<10
+#define LF_SCRIPTISFILE       (1<<0) ///< True if the script is a file, not a lump.
+#define LF_SPEEDMUSIC         (1<<1) ///< Speed up act music for super sneakers
+#define LF_NOSSMUSIC          (1<<2) ///< Disable Super Sonic music
+#define LF_NORELOAD           (1<<3) ///< Don't reload level on death
+#define LF_NOZONE             (1<<4) ///< Don't include "ZONE" on level title
+#define LF_SAVEGAME           (1<<5) ///< Save the game upon loading this level
+#define LF_MIXNIGHTSCOUNTDOWN (1<<6) ///< Play sfx_timeup instead of music change for NiGHTS countdown
+#define LF_WARNINGTITLE       (1<<7) ///< WARNING! WARNING! WARNING! WARNING!
+
+#define LF_NOTITLECARDFIRST        (1<<8)
+#define LF_NOTITLECARDRESPAWN      (1<<9)
+#define LF_NOTITLECARDRECORDATTACK (1<<10)
 #define LF_NOTITLECARD  (LF_NOTITLECARDFIRST|LF_NOTITLECARDRESPAWN|LF_NOTITLECARDRECORDATTACK) ///< Don't start the title card at all
 
 #define LF2_HIDEINMENU     1 ///< Hide in the multiplayer menu
diff --git a/src/g_game.c b/src/g_game.c
index e0bb5179cb6405b6b0ea060f2e655a4cbce5b440..e7a5e92793234856d5c4a9a9bad95a6743384851 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -1938,7 +1938,7 @@ boolean G_IsTitleCardAvailable(void)
 	// The current level header explicitly disabled the title card.
 	UINT16 titleflag = LF_NOTITLECARDFIRST;
 
-	if (modeattacking)
+	if (modeattacking != ATTACKING_NONE)
 		titleflag = LF_NOTITLECARDRECORDATTACK;
 	else if (titlecardforreload)
 		titleflag = LF_NOTITLECARDRESPAWN;
diff --git a/src/st_stuff.c b/src/st_stuff.c
index d99d564c86673606ed6470a11aeccccaaa06272d..3a140e4ee997f07bba565657cf8806eadcc6ef95 100644
--- a/src/st_stuff.c
+++ b/src/st_stuff.c
@@ -2625,7 +2625,7 @@ static void ST_overlayDrawer(void)
 	// Check for a valid level title
 	// If the HUD is enabled
 	// And, if Lua is running, if the HUD library has the stage title enabled
-	if (!(mapheaderinfo[gamemap-1]->levelflags & LF_NOTITLECARD) && *mapheaderinfo[gamemap-1]->lvlttl != '\0' && !(hu_showscores && (netgame || multiplayer)))
+	if (G_IsTitleCardAvailable() && *mapheaderinfo[gamemap-1]->lvlttl != '\0' && !(hu_showscores && (netgame || multiplayer)))
 	{
 		stagetitle = true;
 		ST_preDrawTitleCard();