diff --git a/addons/common/XEH_postInit.sqf b/addons/common/XEH_postInit.sqf
index 291cfc442e..07ffe970cb 100644
--- a/addons/common/XEH_postInit.sqf
+++ b/addons/common/XEH_postInit.sqf
@@ -254,12 +254,25 @@ GVAR(commonPostInited) = true;
 [{
     // If post inits are not ready then wait
     if !(SLX_XEH_MACHINE select 8) exitWith {};
+
     // If settings are not initialized then wait
-    if !(GVAR(SettingsInitialized)) exitWith {};
+    if (isNil QGVAR(settings)) exitWith {
+        diag_log text format["[ACE] Waiting on settings from server"];
+    };
 
     [(_this select 1)] call cba_fnc_removePerFrameHandler;
 
+    diag_log text format["[ACE] Settings received from server"];
+
+    // Load user settings from profile
+    if (hasInterface) then {
+        call FUNC(loadSettingsFromProfile);
+        call FUNC(loadSettingsLocalizedText);
+    };
+
     diag_log text format["[ACE] Settings initialized"];
+
+    //Event that settings are safe to use:
     ["SettingsInitialized", []] call FUNC(localEvent);
 
 }, 0, []] call cba_fnc_addPerFrameHandler;
diff --git a/addons/common/XEH_preInit.sqf b/addons/common/XEH_preInit.sqf
index 85478c03ca..4d93705898 100644
--- a/addons/common/XEH_preInit.sqf
+++ b/addons/common/XEH_preInit.sqf
@@ -294,23 +294,9 @@ GVAR(waitAndExecArray) = [];
 //Debug
 ACE_COUNTERS = [];
 
-// Wait for server settings to arrive
-GVAR(SettingsInitialized) = false;
-["ServerSettingsReceived", {
-    diag_log text format["[ACE] Settings received from server"];
-    // Load user settings from profile
-    if (hasInterface) then {
-        call FUNC(loadSettingsFromProfile);
-        call FUNC(loadSettingsLocalizedText);
-    };
-    GVAR(SettingsInitialized) = true;
-}] call FUNC(addEventhandler);
-
 // Load settings on the server and broadcast them
 if (isServer) then {
     call FUNC(loadSettingsOnServer);
-    // Raise a global event to notify settings from the server have arrived
-    ["ServerSettingsReceived", []] call FUNC(globalEvent);
 };
 
 ACE_player = player;