Index: mainmenu_objectives.gui
===================================================================
--- mainmenu_objectives.gui	(revision 16739)
+++ mainmenu_objectives.gui	(revision 16740)
@@ -43,6 +43,9 @@
 			set "cmd" "log 'Issuing objective_open_request call.'";
 			set "cmd" "objective_open_request";
 
+			// #6229: highlight proper difficulty initially
+			set "DifficultySelection::notime" "0";
+
 			set "notime" 1;
 		}
 	}
@@ -92,12 +95,26 @@
 		visible		"gui::DifficultyIsVisible"
 		notime		1
 
-		onTime 0
+		// #6229: objective_open_request sets diffSelect
+		// so should wait a bit (10 ms) for it to finish
+		onTime 10
 		{
-			// set the default color for all values, will be corrected below
 			set "Difficulty0::forecolor" "0.6,0.6,0.6,0.7";
 			set "Difficulty1::forecolor" "0.6,0.6,0.6,0.7";
 			set "Difficulty2::forecolor" "0.6,0.6,0.6,0.7";
+			if ("gui::diffSelect" == 0)
+			{
+				set "Difficulty0::forecolor" "1,1,1,1";
+			}
+			if ("gui::diffSelect" == 1)
+			{
+				set "Difficulty1::forecolor" "1,1,1,1";
+			}
+			if ("gui::diffSelect" == 2)
+			{
+				set "Difficulty2::forecolor" "1,1,1,1";
+			}
+			set "notime" "1";
 		}
 
 		windowDef Difficulty0
@@ -110,14 +127,6 @@
 			font		"fonts/carleton"
 			notime		1
 
-			onTime 0
-			{
-				if ("gui::diffSelect" == 0)
-				{
-					set "forecolor" "1,1,1,1";
-				}
-			}
-
 			onAction
 			{
 				set "Difficulty1::forecolor" 	"0.6,0.6,0.6,0.7";
@@ -198,14 +207,6 @@
 			font		"fonts/carleton"
 			notime		1
 
-			onTime 0
-			{
-				if ("gui::diffSelect" == 2)
-				{
-					set "forecolor" "1,1,1,1";
-				}
-			}
-					
 			onAction
 			{
 				set "Difficulty0::forecolor" 	"0.6,0.6,0.6,.7";
