diff --git a/src/g_game.c b/src/g_game.c
index 6b4890a1c661ba040f1011ab4cec7a2a75db6f27..fce9919f197d8fd99fc2ed37c3da7232f6b033b1 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -2080,7 +2080,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 < TICRATE && cv_tutorialprompt.value))
 		{
 			M_StartControlPanel();
 			return true;
diff --git a/src/m_menu.c b/src/m_menu.c
index c4944214158c16b64796701b37b3d8fc87bacff3..81ff0f67958658d5f19374b6a46cc0485c9c5b5e 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 < TICRATE && cv_tutorialprompt.value)
 		return false;
 
 	if (CON_Ready() && gamestate != GS_WAITINGPLAYERS)