Use DEEPBIND to load the nss modules. Helps thunderbird (linked against its own version of the ldap libs) when using nss_ldap (linked against system libldap) leading to crashes due to incompatibilities. This has a downside: Linking against libraries overriding malloc() and free() will break (unless the malloc()'d pointers by glibc are free()able by these). This is fixable in principle, just needs some work. See https://bugzilla.novell.com/show_bug.cgi?id=157078 and http://sourceware.org/bugzilla/show_bug.cgi?id=6610 Index: nss/nsswitch.c =================================================================== --- nss/nsswitch.c.orig +++ nss/nsswitch.c @@ -358,7 +358,9 @@ __nss_lookup_function (service_user *ni, ".so"), __nss_shlib_revision); - ni->library->lib_handle = __libc_dlopen (shlib_name); + ni->library->lib_handle + = __libc_dlopen_mode (shlib_name, + RTLD_LAZY | __RTLD_DLOPEN | RTLD_DEEPBIND); if (ni->library->lib_handle == NULL) { /* Failed to load the library. */