diff --git a/src/bin/e_main.c b/src/bin/e_main.c
index c5a319f5d..9ad1d002d 100644
--- a/src/bin/e_main.c
+++ b/src/bin/e_main.c
@@ -114,6 +114,8 @@ static Ecore_Idle_Enterer *_idle_before = NULL;
static Ecore_Idle_Enterer *_idle_after = NULL;
static Ecore_Idle_Enterer *_idle_flush = NULL;
+static Ecore_Event_Handler *mod_init_end = NULL;
+
/* external variables */
EAPI Eina_Bool e_precache_end = EINA_FALSE;
EAPI Eina_Bool x_fatal = EINA_FALSE;
@@ -1805,6 +1807,14 @@ _e_main_efreet_paths_init(void)
}
}
+static Eina_Bool
+_e_main_modules_load_after(void *d EINA_UNUSED, int type EINA_UNUSED, void *ev EINA_UNUSED)
+{
+ e_int_config_modules(NULL, NULL);
+ E_FN_DEL(ecore_event_handler_del, mod_init_end);
+ return ECORE_CALLBACK_RENEW;
+}
+
static void
_e_main_modules_load(Eina_Bool safe_mode)
{
@@ -1823,7 +1833,6 @@ _e_main_modules_load(Eina_Bool safe_mode)
e_module_disable(m);
e_object_del(E_OBJECT(m));
- e_int_config_modules(e_container_current_get(e_manager_current_get()), NULL);
e_error_message_show
(_("Enlightenment crashed early on start and has
"
"been restarted. There was an error loading the
"
@@ -1838,7 +1847,6 @@ _e_main_modules_load(Eina_Bool safe_mode)
}
else
{
- e_int_config_modules(e_container_current_get(e_manager_current_get()), NULL);
e_error_message_show
(_("Enlightenment crashed early on start and has
"
"been restarted. All modules have been disabled
"
@@ -1854,6 +1862,7 @@ _e_main_modules_load(Eina_Bool safe_mode)
"The module configuration dialog should let you select your
"
"modules again."));
}
+ mod_init_end = ecore_event_handler_add(E_EVENT_MODULE_INIT_END, _e_main_modules_load_after, NULL);
}
}