Hello all, Here's a preliminary patch to avoid modifying LD_LIBRARY_PATH. Following Bruce's suggestion, it causes 'sysdep_dynl_link' to manually search additional directories if 'lt_dlopenext' fails to find the library in the default paths. However, I took a somewhat different approach, and tried to be more careful with regard to portability and correctness. I read the code of libltdl, and mimicked their handling of path separators and directory separators, to ensure that this patch will not reduce our portability. I also followed their lead in deciding when to perform a search. If any directory separators are present (even if it's a relative pathname), then libltdl does not perform a search. I used precisely the same criterion to decide whether to search additional directories. So what additional directories does it search? If GUILE_SYSTEM_EXTENSIONS_PATH is set (even if it's empty), then it specifies the additional directories to search. If it's unset, then the default is to search SCM_LIB_DIR and SCM_EXTENSIONS_DIR. *** Note that this changes the search order in the case where GUILE_SYSTEM_EXTENSIONS_PATH is set to a non-empty string. Currently, a non-empty GUILE_SYSTEM_EXTENSIONS_PATH is passed to lt_dladdsearchdir, so it is searched before LTDL_LIBRARY_PATH and LD_LIBRARY_PATH, but this patch causes GUILE_SYSTEM_EXTENSIONS_PATH to be searched last, to be consistent with the handling of the default directories SCM_LIB_DIR and SCM_EXTENSIONS_DIR. This seems sensible to me. Does anyone see a problem with this change? This patch also adds robust handling of the case where GUILE_SYSTEM_EXTENSIONS_PATH contains more than one path component. See below for my preliminary patch. I have not yet tested it carefully. It's a context diff, because 'diff' made a mess of the unified diff. Comments and suggestions solicited. Mark