diff --git a/linker/linker.cpp b/linker/linker.cpp
index 63c41c0..919f8c0 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -525,6 +525,15 @@
                 *lsi = si;
                 goto done;
             }
+
+            /* Next, look for it in the preloads list */
+            for (int i = 0; g_ld_preloads[i] != NULL; i++) {
+                s = soinfo_elf_lookup(g_ld_preloads[i], elf_hash, name);
+                if (s != NULL) {
+                    *lsi = g_ld_preloads[i];
+                    goto done;
+                }
+            }
         } else {
             /* Order of symbol lookup is controlled by DT_SYMBOLIC flag */
 
@@ -542,6 +551,15 @@
                     *lsi = somain;
                     goto done;
                 }
+
+                /* Next, look for it in the preloads list */
+                for (int i = 0; g_ld_preloads[i] != NULL; i++) {
+                    s = soinfo_elf_lookup(g_ld_preloads[i], elf_hash, name);
+                    if (s != NULL) {
+                        *lsi = g_ld_preloads[i];
+                        goto done;
+                    }
+                }
             }
 
             /* Look for symbols in the local scope (the object who is
@@ -573,16 +591,16 @@
                     *lsi = somain;
                     goto done;
                 }
-            }
-        }
-    }
 
-    /* Next, look for it in the preloads list */
-    for (int i = 0; g_ld_preloads[i] != nullptr; i++) {
-        s = soinfo_elf_lookup(g_ld_preloads[i], elf_hash, name);
-        if (s != nullptr) {
-            *lsi = g_ld_preloads[i];
-            goto done;
+                /* Next, look for it in the preloads list */
+                for (int i = 0; g_ld_preloads[i] != NULL; i++) {
+                    s = soinfo_elf_lookup(g_ld_preloads[i], elf_hash, name);
+                    if (s != NULL) {
+                        *lsi = g_ld_preloads[i];
+                        goto done;
+                    }
+                }
+            }
         }
     }
 
