diff --git a/src/wrap.c b/src/wrap.c
index 3d3d2f38178283190e73cac9bf823374c35864e0..979a656b28a0dbd38b85606c468dc491a50c24a4 100644
--- a/src/wrap.c
+++ b/src/wrap.c
@@ -42,12 +42,25 @@
 #include "flatpak-utils-private.h"
 #include "utils.h"
 
+/*
+ * Supported Debian-style multiarch tuples
+ */
 static const char * const multiarch_tuples[] =
 {
   "x86_64-linux-gnu",
   "i386-linux-gnu"
 };
 
+/*
+ * Directories other than /usr/lib that we must search for loadable
+ * modules, in the same order as multiarch_tuples
+ */
+static const char * const libquals[] =
+{
+  "lib64",
+  "lib32"
+};
+
 /* In Flatpak this is optional, in pressure-vessel not so much */
 #define ENABLE_XAUTH
 
@@ -1078,7 +1091,7 @@ bind_runtime (FlatpakBwrap *bwrap,
           g_autofree gchar *this_dri_path_in_container = g_build_filename (libdir_in_container,
                                                                            "dri", NULL);
           g_autofree gchar *libc = NULL;
-          g_autofree gchar *libqual = NULL;
+          const gchar *libqual = NULL;
 
           search_path_append (dri_path, this_dri_path_in_container);
 
@@ -1172,16 +1185,18 @@ bind_runtime (FlatpakBwrap *bwrap,
                                         NULL);
             }
 
-          /* /lib, /lib32 or /lib64 */
-          libqual = g_path_get_dirname (ld_so);
+          /* /lib32 or /lib64 */
+          libqual = libquals[i];
 
-          dirs = g_new0 (gchar *, 5);
+          dirs = g_new0 (gchar *, 7);
           dirs[0] = g_build_filename ("/lib", multiarch_tuples[i], NULL);
           dirs[1] = g_build_filename ("/usr", "lib", multiarch_tuples[i], NULL);
-          dirs[2] = g_strdup (libqual);
-          dirs[3] = g_build_filename ("/usr", libqual, NULL);
+          dirs[2] = g_strdup ("/lib");
+          dirs[3] = g_strdup ("/usr/lib");
+          dirs[4] = g_build_filename ("/", libqual, NULL);
+          dirs[5] = g_build_filename ("/usr", libqual, NULL);
 
-          for (j = 0; j < 4; j++)
+          for (j = 0; j < 6; j++)
             {
               if (!try_bind_dri (bwrap, run_in_container, overrides, scratch,
                                  tool_path, dirs[j], libdir_on_host, error))