diff --git a/loader/main.c b/loader/main.c
index af36a08216f50fced8a8231231545280f310e3b5..1fb3b91308db2187689afbda8a2cb5b1fabe59ab 100644
--- a/loader/main.c
+++ b/loader/main.c
@@ -62,6 +62,8 @@ DEFAULT_DEBUG_CHANNEL(server);
  */
 BOOL MAIN_MainInit( int argc, char *argv[], BOOL win32 )
 {
+    char szGraphicsDriver[MAX_PATH];
+
     /* store the program name */
     argv0 = argv[0];
 
@@ -95,7 +97,11 @@ BOOL MAIN_MainInit( int argc, char *argv[], BOOL win32 )
     /* Initialize KERNEL */
     if (!LoadLibraryA( "KERNEL32" )) return FALSE;
 
-    if (!LoadLibraryA( "x11drv" )) return FALSE;
+    if (PROFILE_GetWineIniString( "Wine", "GraphicsDriver", 
+        "x11drv", szGraphicsDriver, sizeof(szGraphicsDriver)))
+    {
+        if (!LoadLibraryA( szGraphicsDriver )) return FALSE;
+    }
 
     return TRUE;
 }
diff --git a/wine.ini b/wine.ini
index c2b45fba174fb2e02e219dc2a6920eba429f0d7c..23c4290d358a0c4e1ef0f6bb58af28838feb30b5 100644
--- a/wine.ini
+++ b/wine.ini
@@ -55,6 +55,7 @@ System=c:\windows\system
 Temp=e:\
 Path=c:\windows;c:\windows\system;e:\;e:\test;f:\
 Profile=c:\windows\Profiles\Administrator
+GraphicsDriver=x11drv
 
 # <wineconf>