diff --git a/CHANGES/v2.3.md b/CHANGES/v2.3.md
index c248132a901313ec11f9d4b1b1478866a99dc294..1d730929b4ce2664df63cf32f06b7092da22d51b 100644
--- a/CHANGES/v2.3.md
+++ b/CHANGES/v2.3.md
@@ -200,6 +200,8 @@ For users:
 For developers:
 - Fixed a bug in `./configure --disable-libsearch` when searching for molfile plugins.
 - Cppcheck on travis-ci has been updated to 1.80.
+- Configure script now has a list of better alternatives to find a working `ld -r -o` tool to merge object files.
+  This solves linking issues on some peculiar systems (see \issue{291}, thanks to Massimiliano Culpo). 
 - Using `install_name_tool` also on non-installed libraries. This makes it possible to link them and later
   find them without explicitly setting `DYLD_LIBRARY_PATH`. This should also make the `DYLD_LIBRARY_PATH` irrelevant.
   Notice that `DYLD_LIBRARY_PATH` is not well behaved in OSX El Capitan.
diff --git a/configure b/configure
index ba446dc53d7761074b634ccae7640a3abb00e0ea..b5b747e8b6cb1a431e4271863f58e0682c583200 100755
--- a/configure
+++ b/configure
@@ -8683,7 +8683,7 @@ $as_echo "$as_me: **************************" >&6;}
 
 LD_RO=
 if test "$ld_r" == true ; then
-for test_LD_RO in "$CXX -Wl,-r -o" "ld -r -o"
+for test_LD_RO in "$($CXX --print-prog-name=ld) -r -o" "$CXX -Wl,-r -o" "ld -r -o"
 do
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C++ objects can be grouped with $test_LD_RO" >&5
 $as_echo_n "checking whether C++ objects can be grouped with $test_LD_RO... " >&6; }
diff --git a/configure.ac b/configure.ac
index 191ebe45503a8b5b69df2076f805099c9d802cb6..ee892cf2cff5e592f223ae0b32640ab6ebb1264e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -845,7 +845,7 @@ AC_MSG_NOTICE([**************************])
 AC_SUBST(LD_RO)
 LD_RO=
 if test "$ld_r" == true ; then
-for test_LD_RO in "$CXX -Wl,-r -o" "ld -r -o"
+for test_LD_RO in "$($CXX --print-prog-name=ld) -r -o" "$CXX -Wl,-r -o" "ld -r -o"
 do
   AC_MSG_CHECKING([whether C++ objects can be grouped with $test_LD_RO])