Delay sending debug events until process initialization is complete.

diff --git a/loader/module.c b/loader/module.c
index 9441e03..7db93e1 100644
--- a/loader/module.c
+++ b/loader/module.c
@@ -327,6 +327,29 @@
     return retval;
 }
 
+/*************************************************************************
+ *		MODULE_SendLoadDLLEvents
+ * 
+ * Sends DEBUG_DLL_LOAD events for all outstanding modules.
+ *
+ * NOTE: Assumes that the process critical section is held!
+ *
+ */
+void MODULE_SendLoadDLLEvents( void )
+{
+    WINE_MODREF *wm;
+
+    for ( wm = PROCESS_Current()->modref_list; wm; wm = wm->next )
+    {
+        if ( wm->type != MODULE32_PE ) continue;
+        if ( wm == PROCESS_Current()->exe_modref ) continue;
+        if ( wm->flags & WINE_MODREF_DEBUG_EVENT_SENT ) continue;
+
+        DEBUG_SendLoadDLLEvent( -1 /*FIXME*/, wm->module, &wm->modname );
+        wm->flags |= WINE_MODREF_DEBUG_EVENT_SENT;
+    }
+}
+
 
 /***********************************************************************
  *           MODULE_CreateDummyModule
@@ -1321,13 +1344,18 @@
 	EnterCriticalSection(&PROCESS_Current()->crit_section);
 
 	wm = MODULE_LoadLibraryExA( libname, hfile, flags );
-
-	if(wm && !MODULE_DllProcessAttach(wm, NULL))
+	if ( wm )
 	{
-		WARN_(module)("Attach failed for module '%s', \n", libname);
-		MODULE_FreeLibrary(wm);
-		SetLastError(ERROR_DLL_INIT_FAILED);
-		wm = NULL;
+		if ( PROCESS_Current()->flags & PDB32_DEBUGGED )
+			MODULE_SendLoadDLLEvents();
+                        
+		if ( !MODULE_DllProcessAttach( wm, NULL ) )
+		{
+			WARN_(module)("Attach failed for module '%s', \n", libname);
+			MODULE_FreeLibrary(wm);
+			SetLastError(ERROR_DLL_INIT_FAILED);
+			wm = NULL;
+		}
 	}
 
 	LeaveCriticalSection(&PROCESS_Current()->crit_section);
@@ -1411,9 +1439,6 @@
 
 			LeaveCriticalSection(&PROCESS_Current()->crit_section);
 
-                        if (PROCESS_Current()->flags & PDB32_DEBUGGED)
-                            DEBUG_SendLoadDLLEvent( -1 /*FIXME*/, pwm->module, &pwm->modname );
-                        
 			return pwm;
 		}