GetClassInfo should return global classes even if the hInstance
parameter is different from the one passed to the RegisterClass
function.

diff --git a/windows/class.c b/windows/class.c
index 3464423..30fa05c 100644
--- a/windows/class.c
+++ b/windows/class.c
@@ -1159,11 +1159,12 @@
     if (!(atom=GlobalFindAtomA(name)) || !(classPtr=CLASS_FindClassByAtom(atom,hInstance)))
         return FALSE;
 
-    if  (classPtr->hInstance && (hInstance != classPtr->hInstance))
+    if (!(classPtr->style & CS_GLOBALCLASS) &&
+        classPtr->hInstance &&
+        (hInstance != classPtr->hInstance))
     {
         if (hInstance) return FALSE;
-        else    
-            WARN("systemclass %s (hInst=0) demanded but only class with hInst!=0 found\n",name);
+        WARN("systemclass %s (hInst=0) demanded but only class with hInst!=0 found\n",name);
     }
 
     wc->style         = classPtr->style;
@@ -1171,7 +1172,7 @@
                                                     WIN_PROC_32A );
     wc->cbClsExtra    = classPtr->cbClsExtra;
     wc->cbWndExtra    = classPtr->cbWndExtra;
-    wc->hInstance     = classPtr->hInstance;
+    wc->hInstance     = hInstance;
     wc->hIcon         = (HICON)classPtr->hIcon;
     wc->hCursor       = (HCURSOR)classPtr->hCursor;
     wc->hbrBackground = (HBRUSH)classPtr->hbrBackground;
@@ -1197,18 +1198,19 @@
     )
         return FALSE;
 
-    if  (classPtr->hInstance && (hInstance != classPtr->hInstance)) {
-        if (hInstance)
-		return FALSE;
-        else    
-            WARN("systemclass %s (hInst=0) demanded but only class with hInst!=0 found\n",debugstr_w(name));
+    if (!(classPtr->style & CS_GLOBALCLASS) &&
+        classPtr->hInstance &&
+        (hInstance != classPtr->hInstance))
+    {
+        if (hInstance) return FALSE;
+        WARN("systemclass %s (hInst=0) demanded but only class with hInst!=0 found\n",debugstr_w(name));
     }
     wc->style         = classPtr->style;
     wc->lpfnWndProc   = (WNDPROC)WINPROC_GetProc( classPtr->winproc,
                                                     WIN_PROC_32W );
     wc->cbClsExtra    = classPtr->cbClsExtra;
     wc->cbWndExtra    = classPtr->cbWndExtra;
-    wc->hInstance     = classPtr->hInstance;
+    wc->hInstance     = hInstance;
     wc->hIcon         = (HICON)classPtr->hIcon;
     wc->hCursor       = (HCURSOR)classPtr->hCursor;
     wc->hbrBackground = (HBRUSH)classPtr->hbrBackground;