diff --git a/loader/module.c b/loader/module.c
index 9d905e6..ec69928 100644
--- a/loader/module.c
+++ b/loader/module.c
@@ -1255,26 +1255,25 @@
         if (flags & LOAD_LIBRARY_AS_DATAFILE)
         {
             char filename[256];
-            HANDLE hFile;
             HMODULE hmod = 0;
 
             /* This method allows searching for the 'native' libraries only */
-            if (!SearchPathA( NULL, libname, ".dll", sizeof(filename), filename, NULL ))
+            if (SearchPathA( NULL, libname, ".dll", sizeof(filename), filename, NULL ))
             {
-                flags |= DONT_RESOLVE_DLL_REFERENCES; /* Just in case */
-                goto try_builtin; /* Fallback to normal behaviour */
+                /* FIXME: maybe we should use the hfile parameter instead */
+                HANDLE hFile = CreateFileA( filename, GENERIC_READ, FILE_SHARE_READ,
+                                            NULL, OPEN_EXISTING, 0, 0 );
+                if (hFile != INVALID_HANDLE_VALUE)
+                {
+                    hmod = PE_LoadImage( hFile, filename, flags );
+                    CloseHandle( hFile );
+                }
+                if (hmod) return hmod;
             }
-            /* FIXME: maybe we should use the hfile parameter instead */
-            hFile = CreateFileA( filename, GENERIC_READ, FILE_SHARE_READ,
-                                 NULL, OPEN_EXISTING, 0, 0 );
-            if (hFile != INVALID_HANDLE_VALUE)
-            {
-                hmod = PE_LoadImage( hFile, filename, flags );
-                CloseHandle( hFile );
-            }
-            return hmod;
+            flags |= DONT_RESOLVE_DLL_REFERENCES; /* Just in case */
+            /* Fallback to normal behaviour */
         }
- try_builtin:
+
         RtlAcquirePebLock();
 
 	wm = MODULE_LoadLibraryExA( libname, hfile, flags );
