diff --git a/configure b/configure
index 4c7acb68643b0f50ee98c7ab2454e2af89d250a6..5a54a700c68161f7d7f4415c9ddba00b174ac0b9 100755
--- a/configure
+++ b/configure
@@ -4640,7 +4640,32 @@ then
   CXX="$CXX --coverage"
   LDSHARED="$LDSHARED --coverage"
   CFLAGS="$CFLAGS --coverage"
-  LDFLAGS="$CFLAGS --coverage"
+
+  save_LDFLAGS="$LDFLAGS"
+  LDFLAGS="$LDFLAGS --coverage"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether LDFLAGS can contain --coverage" >&5
+$as_echo_n "checking whether LDFLAGS can contain --coverage... " >&6; }
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }; LDFLAGS="$save_LDFLAGS"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
   STATIC_LIBS="$STATIC_LIBS --coverage"
 fi
 
diff --git a/configure.ac b/configure.ac
index 4683f01e2b36d7be6ec8360f8a208ea7e7c4d7d7..851e3d7b23f47cc598d82a1e73000bb73b51282f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -353,7 +353,7 @@ then
   CXX="$CXX --coverage"
   LDSHARED="$LDSHARED --coverage"
   CFLAGS="$CFLAGS --coverage"
-  LDFLAGS="$CFLAGS --coverage"
+  PLUMED_CHECK_LDFLAGS([--coverage])
   STATIC_LIBS="$STATIC_LIBS --coverage"
 fi