diff --git a/lalapps/src/pulsar/hough/src2/EinsteinAtHome/eah_build2.sh b/lalapps/src/pulsar/hough/src2/EinsteinAtHome/eah_build2.sh
index 988e8fc26abb6d23d90cb55bbb93bf7d9bcd9933..bb83351ac675fcb1a72ed6bb1a75d88fc1f810e8 100755
--- a/lalapps/src/pulsar/hough/src2/EinsteinAtHome/eah_build2.sh
+++ b/lalapps/src/pulsar/hough/src2/EinsteinAtHome/eah_build2.sh
@@ -252,9 +252,9 @@ else
 		WITH_SSL="--with-ssl=$ssldir"
 	    fi
 	    if [ ".$release" = ".true" ]; then
-		CPPFLAGS="-DEXT_STACKTRACE -I$INSTALL/include/bfd $CPPFLAGS"
+		CPPFLAGS="-DDLOPEN_LIBGCC -DEXT_STACKTRACE -I$INSTALL/include/bfd $CPPFLAGS"
 		export RELEASE_DEPS="erp_execinfo_plus.o libstdc++.a libz.a"
-		export RELEASE_LDADD="erp_execinfo_plus.o -lbfd -liberty /lib/libgcc_s.so.1"
+		export RELEASE_LDADD="erp_execinfo_plus.o -lbfd -liberty -ldl"
 		build_binutils=true
 		enable_linux_compatibility_workarounds=true
 	    fi ;;
diff --git a/lalapps/src/pulsar/hough/src2/EinsteinAtHome/hs_boinc_extras.c b/lalapps/src/pulsar/hough/src2/EinsteinAtHome/hs_boinc_extras.c
index b5b1169e1922ccb3df012087d070f2a6d07f24dc..ba73205260b75935704d227a24f67b1bd0efa77e 100644
--- a/lalapps/src/pulsar/hough/src2/EinsteinAtHome/hs_boinc_extras.c
+++ b/lalapps/src/pulsar/hough/src2/EinsteinAtHome/hs_boinc_extras.c
@@ -69,6 +69,11 @@
 #include <gnu/libc-version.h>
 #endif
 
+/* try to dlopen("libgcc_s.so.1") */
+#ifdef DLOPEN_LIBGCC
+#include <dlfcn.h>
+#endif
+
 /* our own exception handler / runtime debugger */
 #if HAVE_EXCHNDL
 #include "exchndl.h"
@@ -1098,6 +1103,18 @@ static void worker (void) {
   LogPrintf (LOG_DEBUG, "glibc version/release: %s/%s\n", gnu_get_libc_version(), gnu_get_libc_release());
 #endif
 
+#ifdef DLOPEN_LIBGCC
+  {
+    void *lib_handle = dlopen("libgcc_s.so.1", RTLD_LAZY);
+    if(lib_handle) {
+      LogPrintf (LOG_DEBUG, "Successfully loaded libgcc_s.so.1\n");
+      /* dlclose(lib_handle); */
+    } else {
+      LogPrintf (LOG_DEBUG, "Couldn't load libgcc_s.so.1: %s\n", dlerror());
+    }
+  }
+#endif
+
   /* if there already was an error, there is no use in continuing */
   if (res) {
     LogPrintf (LOG_CRITICAL, "ERROR: error %d in command-line parsing\n", res);