diff --git a/linker/linker.cpp b/linker/linker.cpp
index c3c87a2..9b1f97b 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -1722,22 +1722,22 @@
 
 template<typename F>
 static void for_each_dt_needed(const soinfo* si, F action) {
+  for_each_matching_shim(si->get_realpath(), action);
   for (const ElfW(Dyn)* d = si->dynamic; d->d_tag != DT_NULL; ++d) {
     if (d->d_tag == DT_NEEDED) {
       action(fix_dt_needed(si->get_string(d->d_un.d_val), si->get_realpath()));
     }
   }
-  for_each_matching_shim(si->get_realpath(), action);
 }
 
 template<typename F>
 static void for_each_dt_needed(const ElfReader& elf_reader, F action) {
+  for_each_matching_shim(elf_reader.name(), action);
   for (const ElfW(Dyn)* d = elf_reader.dynamic(); d->d_tag != DT_NULL; ++d) {
     if (d->d_tag == DT_NEEDED) {
       action(fix_dt_needed(elf_reader.get_string(d->d_un.d_val), elf_reader.name()));
     }
   }
-  for_each_matching_shim(elf_reader.name(), action);
 }
 
 static bool load_library(android_namespace_t* ns,
