diff --git a/distrib/Makefile-bin.in b/distrib/Makefile-bin.in
index 92438503dade11a31c435bc3ae762a671781ccf4..15882cf2d2643c927587c74ec6e1145e0566e889 100644
--- a/distrib/Makefile-bin.in
+++ b/distrib/Makefile-bin.in
@@ -101,6 +101,7 @@ VERSION_SYMLINKS_FOR=ghc
 # local setup/install information prepended.
 #
 PACKAGE_SCRIPTS=ghc stat2resid hstags mkdependHS
+PACKAGE_LIB_SCRIPTS=hscpp
 
 # Binaries to install
 PACKAGE_BINS=$(PACKAGE_SCRIPTS) hp2ps
@@ -142,6 +143,19 @@ config-pkgs ::
 	   $(CHMOD) $(BIN_PERMS) bin/$(platform)/$(package)-$(version)/$$i; \
 	   echo "Done."; \
 	done
+	@for i in $(PACKAGE_LIB_SCRIPTS); do \
+	   echo "Creating a configured version of $$i .."; \
+	   $(RM) lib/$(platform)/$(package)-$(version)/$$i.bak; \
+	   test -f lib/$(platform)/$(package)-$(version)/$$i && $(MV) lib/$(platform)/$(package)-$(version)/$$i lib/$(platform)/$(package)-$(version)/$$i.bak; \
+	   echo "eval 'exec $(PERL) -S $$$""0 $$""{1+\"$$$""@\"}'"         > lib/$(platform)/$(package)-$(version)/$$i; \
+	   echo "      if $$""running_under_some_shell;"                  >> lib/$(platform)/$(package)-$(version)/$$i; \
+	   echo $$"bindir='$(bindir)';"                                   >> lib/$(platform)/$(package)-$(version)/$$i; \
+	   echo $$"libdir='$(real_libdir)';"                              >> lib/$(platform)/$(package)-$(version)/$$i; \
+	   echo $$"datadir='$(real_datadir)';"                            >> lib/$(platform)/$(package)-$(version)/$$i; \
+	   cat lib/$(platform)/$(package)-$(version)/$$i.prl              >> lib/$(platform)/$(package)-$(version)/$$i; \
+	   $(CHMOD) $(BIN_PERMS) lib/$(platform)/$(package)-$(version)/$$i; \
+	   echo "Done."; \
+	done
 
 #
 # The vaguely funky eval 'exec ...' echo line above *might* be