diff --git a/ghc/utils/Makefile b/ghc/utils/Makefile
index 78554154dfc55eca9645597c2aefe27b76bcb62c..edb0ecee8e4ca6b2fee0a579e01198f09a5c9780 100644
--- a/ghc/utils/Makefile
+++ b/ghc/utils/Makefile
@@ -15,10 +15,11 @@ SUBDIRS = hp2ps		\
 	  hscpp		\
 	  hstags	\
 	  mkdependHS	\
-	  parallel	\
+	  parallel      \
 	  stat2resid	\
 	  ugen		\
 	  unlit
+
 endif
 
 # "heap-view" is not in the list because (a) it requires
diff --git a/ghc/utils/hstags/hstags.prl b/ghc/utils/hstags/hstags.prl
index c7e137a5438336cadc38703eab51ad5969a424a9..9d4afddabc78bf5026c1c2ed980e08016b66bfc2 100644
--- a/ghc/utils/hstags/hstags.prl
+++ b/ghc/utils/hstags/hstags.prl
@@ -6,6 +6,7 @@
 #   TMPDIR
 #   TOP_PWD
 #   libdir
+#   libexecdir
 #   PROJECTVERSION
 #   HSP_IMPORTS
 
@@ -18,20 +19,21 @@ if ( $ENV{'TMPDIR'} ) { # where to make tmp file names
 
 $TopPwd         = "${TOP_PWD}"; # *Only* needed when using it in-situ (i.e., INSTALLING=0).
 $InstLibDirGhc  = "${libdir}";
+$InstLibExecDirGhc  = "${libexecdir}";
 
 $Unlit = ( $INSTALLING ? 
-           "${InstLibDirGhc}/unlit" : 
+           "${InstLibExecDirGhc}/unlit" : 
 	   "${TopPwd}/ghc/utils/unlit/unlit" );
 # but this is re-set to "cat" (after options) if -cpp not seen
 $HsCpp = ( $INSTALLING ? 
 	   "${InstLibDirGhc}/hscpp" : 
 	   "${TopPwd}/ghc/utils/hscpp/hscpp" );
 $HsP   = ( $INSTALLING ? 
-	   "${InstLibDirGhc}/hsp" : 
+	   "${InstLibExecDirGhc}/hsp" : 
 	   "${TopPwd}/ghc/compiler/hsp" );
 $HsTagsHelp = 
 	 ( $INSTALLING ? 
-	   "${InstLibDirGhc}/hstags-help" : 
+	   "${InstLibExecDirGhc}/hstags-help" : 
 	   "${TopPwd}/ghc/utils/hstags/hstags-help" );
 
 $Verbose = 0;
diff --git a/ghc/utils/mkdependHS/mkdependHS.prl b/ghc/utils/mkdependHS/mkdependHS.prl
index d0e2baac028471a8c7bbd0e3923a94b9834b6851..369852047830e68d659920194e6dfcf005c1db2b 100644
--- a/ghc/utils/mkdependHS/mkdependHS.prl
+++ b/ghc/utils/mkdependHS/mkdependHS.prl
@@ -2,7 +2,7 @@
 # perl script expect the following variables to be prepended:
 #
 #  RAWCPP TMPDIR TOP_PWD
-#  libdir datadir INSTALLING
+#  libdir libexecdir datadir INSTALLING
 #  PROJECTVERSION SED 
 #
 # tries to work like mkdependC - capable of dealing with:
@@ -87,12 +87,14 @@ if ( $ENV{'TMPDIR'} ) { # where to make tmp file names
     $ENV{'TMPDIR'} = "${TMPDIR}"; # set the env var as well
 }
 
-$TopPwd	         = "${TOP_PWD}";
-$InstLibDirGhc   = "${libdir}";
-$InstHsLibDirGhc = "${libdir}/hslibs";
-$InstDataDirGhc  = "${datadir}";
+$TopPwd	           = "${TOP_PWD}";
+$InstLibDirGhc     = "${libdir}";
+$InstLibExecDirGhc = "${libexecdir}";
+$InstHsLibDirGhc   = "${libdir}/hslibs";
+$InstDataDirGhc    = "${datadir}";
 
-$Unlit = ($INSTALLING) ? "${InstLibDirGhc}/unlit" : "${TopPwd}/ghc/utils/unlit/unlit";
+$Unlit = ($INSTALLING) ? "${InstLibExecDirGhc}/unlit" 
+		       : "${TopPwd}/ghc/utils/unlit/unlit";
 
 $Begin_magic_str = "# DO NOT DELETE: Beginning of Haskell dependencies\n";
 $End_magic_str = "# DO NOT DELETE: End of Haskell dependencies\n";
diff --git a/ghc/utils/parallel/Makefile b/ghc/utils/parallel/Makefile
index bd9df22b33a508a14a6927ba57572351bf8e1186..b2ebf84c451481a671647ec216ea35f79072c030 100644
--- a/ghc/utils/parallel/Makefile
+++ b/ghc/utils/parallel/Makefile
@@ -35,7 +35,18 @@ $(BASH_PROGS) :
 	@cat $@.bash >> $@
 	@chmod a+x $@
 
-INSTALL_PROGS += $(BASH_PROGS) $(PERL_PROGS)
-CLEAN_FILES   += $(BASH_PROGS) $(PERL_PROGS)
+#
+# You'll only get this with Parallel Haskell or 
+# GranSim..
+#
+ifeq "$(BuildingParallel)" "YES"
+INSTALL_SCRIPTS += $(BASH_PROGS) $(PERL_PROGS)
+else
+ifeq "$(BuildingGranSim)" "YES"
+INSTALL_SCRIPTS += $(BASH_PROGS) $(PERL_PROGS)
+endif
+endif
+
+CLEAN_FILES     += $(BASH_PROGS) $(PERL_PROGS)
 
 include $(TOP)/mk/target.mk