diff --git a/libomptarget/include/PluginManager.h b/libomptarget/include/PluginManager.h
index 0b09747..6af99ef 100644
--- a/libomptarget/include/PluginManager.h
+++ b/libomptarget/include/PluginManager.h
@@ -150,24 +150,6 @@
   HostPtrToTableMapTy HostPtrToTableMap;
   std::mutex TblMapMtx; ///< For HostPtrToTableMap
 
-  // Work around for plugins that call dlopen on shared libraries that call
-  // tgt_register_lib during their initialisation. Stash the pointers in a
-  // vector until the plugins are all initialised and then register them.
-  bool delayRegisterLib(__tgt_bin_desc *Desc) {
-    if (RTLsLoaded)
-      return false;
-    DelayedBinDesc.push_back(Desc);
-    return true;
-  }
-
-  void registerDelayedLibraries() {
-    // Only called by libomptarget constructor
-    RTLsLoaded = true;
-    for (auto *Desc : DelayedBinDesc)
-      __tgt_register_lib(Desc);
-    DelayedBinDesc.clear();
-  }
-
   /// Return the number of usable devices.
   int getNumDevices() { return getExclusiveDevicesAccessor()->size(); }
 
@@ -196,9 +178,6 @@
   void addRequirements(int64_t Flags) { Requirements.addRequirements(Flags); }
 
 private:
-  bool RTLsLoaded = false;
-  llvm::SmallVector<__tgt_bin_desc *> DelayedBinDesc;
-
   // List of all plugin adaptors, in use or not.
   llvm::SmallVector<std::unique_ptr<PluginAdaptorTy>> PluginAdaptors;
 
diff --git a/libomptarget/src/interface.cpp b/libomptarget/src/interface.cpp
index d92f40c..777dc07 100644
--- a/libomptarget/src/interface.cpp
+++ b/libomptarget/src/interface.cpp
@@ -46,9 +46,6 @@
 /// adds a target shared library to the target execution image
 EXTERN void __tgt_register_lib(__tgt_bin_desc *Desc) {
   TIMESCOPE();
-  if (PM->delayRegisterLib(Desc))
-    return;
-
   PM->registerLib(Desc);
 }
 
diff --git a/libomptarget/src/rtl.cpp b/libomptarget/src/rtl.cpp
index 5eb1c55..27db703 100644
--- a/libomptarget/src/rtl.cpp
+++ b/libomptarget/src/rtl.cpp
@@ -51,7 +51,6 @@
   PM->init();
 
   Profiler::get();
-  PM->registerDelayedLibraries();
 }
 
 __attribute__((destructor(101))) void deinit() {
diff --git a/libomptarget/test/Inputs/empty.c b/libomptarget/test/Inputs/empty.c
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/libomptarget/test/Inputs/empty.c
@@ -0,0 +1 @@
+
diff --git a/libomptarget/test/offloading/bug60119.c b/libomptarget/test/offloading/bug60119.c
new file mode 100644
index 0000000..e32f1cc
--- /dev/null
+++ b/libomptarget/test/offloading/bug60119.c
@@ -0,0 +1,6 @@
+// RUN: %clang-generic -fPIC -shared %S/../Inputs/empty.c -o %T/liba.so
+// RUN: %clang-generic -fPIC -shared %S/../Inputs/empty.c -o %T/libb.so
+// RUN: %clang-generic -rpath %T -L %T -l a -l b %s -o %t
+// RUN: %t
+
+int main() {}
