diff --git game/Objectives/MissionData.cpp game/Objectives/MissionData.cpp
index db0f87f..2794032 100644
--- game/Objectives/MissionData.cpp
+++ game/Objectives/MissionData.cpp
@@ -2460,6 +2460,11 @@ void CMissionData::HandleMainMenuCommands(const idStr& cmd, idUserInterface* gui
 				// Let the GUI know what the current difficulty level is
 				gui->SetStateInt("diffSelect", gameLocal.m_DifficultyManager.GetDifficultyLevel());
 
+				// #6233: ResetWindowTime is needed for reinitializing which difficulty is selected
+				gui->ResetWindowTime("Difficulty0");
+				gui->ResetWindowTime("Difficulty1");
+				gui->ResetWindowTime("Difficulty2");
+
 				// Clear the flag so that the objectives get updated
 				ClearGUIState();
 			}
@@ -2806,4 +2811,4 @@ void CMissionData::SetSecretsFound( float secrets )
 void CMissionData::SetSecretsTotal( float secrets )
 {
 	m_Stats.secretsTotal = (int)secrets;
-}
\ No newline at end of file
+}
