diff --git a/src/g_game.c b/src/g_game.c
index a5f969243a26b46fd8e1c9c2e2ce18bb2ec2db2c..619ed8c89d722280375a30fe3059c58785ae61b2 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -2082,7 +2082,7 @@ boolean G_Responder(event_t *ev)
 	if (gameaction == ga_nothing && !singledemo &&
 		((demoplayback && !modeattacking && !titledemo) || gamestate == GS_TITLESCREEN))
 	{
-		if (ev->type == ev_keydown && ev->key != 301 && !(gamestate == GS_TITLESCREEN && finalecount < TICRATE))
+		if (ev->type == ev_keydown && ev->key != 301 && !(gamestate == GS_TITLESCREEN && finalecount < (cv_tutorialprompt.value ? TICRATE : 0)))
 		{
 			M_StartControlPanel();
 			return true;
diff --git a/src/m_menu.c b/src/m_menu.c
index 9fcd1e85a7815ab8cd89c3aa4ee52b0df432a33c..3946803b290e0240cac36accd363113256580933 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -3196,7 +3196,7 @@ boolean M_Responder(event_t *ev)
 	|| gamestate == GS_CREDITS || gamestate == GS_EVALUATION || gamestate == GS_GAMEEND)
 		return false;
 
-	if (gamestate == GS_TITLESCREEN && finalecount < TICRATE)
+	if (gamestate == GS_TITLESCREEN && finalecount < (cv_tutorialprompt.value ? TICRATE : 0))
 		return false;
 
 	if (CON_Ready() && gamestate != GS_WAITINGPLAYERS)