diff --git a/GNUmakefile b/GNUmakefile
index e22d8c44f2e7226a7dd75463cc147837ab33c92b..b97952d1de861b9b63d38ef2ccbee27db2f44b82 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -88,7 +88,7 @@ bindist-ghc:
 	$(SED) \
 		-e "s/@@EXE_NAME@@/haskell-language-server-$(GHC_VERSION)/" \
 		-e "s/@@GHC_VERSION@@/$(GHC_VERSION)/" \
-		-e "s/@@ABI_HASHES@@/$(shell for dep in `ghc-pkg-$(GHC_VERSION) --global list --simple-output` ; do ghc-pkg-$(GHC_VERSION) field $$dep abi --simple-output ; done | tr '\n' ' ' | xargs)/" \
+		-e "s/@@ABI_HASHES@@/$(shell for dep in `ghc-pkg-$(GHC_VERSION) --global list --simple-output` ; do printf "%s:" "$$dep" && ghc-pkg-$(GHC_VERSION) field $$dep abi --simple-output ; done | tr '\n' ' ' | xargs)/" \
 		bindist/wrapper.in > "$(BINDIST_OUT_DIR)/haskell-language-server-$(GHC_VERSION).in"
 	$(CHMOD_X) "$(BINDIST_OUT_DIR)/haskell-language-server-$(GHC_VERSION).in"
 	$(INSTALL_D) "$(BINDIST_OUT_DIR)/bin/"
diff --git a/bindist/wrapper.in b/bindist/wrapper.in
index 90fb2d9540f9d3b04841d24870cf0198dd108055..e6e30b3c469ed33c4ea53aad4765623c74623235 100644
--- a/bindist/wrapper.in
+++ b/bindist/wrapper.in
@@ -56,7 +56,7 @@ check_ghc() {
 			return 1
 		fi
 		PKGCONF="${check_ghc_libdir}/package.conf.d"
-		MY_ABI_HASHES="$(for dep in $("${GHC_PKG}" --global --global-package-db "$PKGCONF" list --simple-output) ; do "${GHC_PKG}" --global --global-package-db "$PKGCONF" field "${dep}" abi --simple-output ; done | tr '\n' ' ' | xargs)"
+		MY_ABI_HASHES="$(for dep in $("${GHC_PKG}" --global --global-package-db "$PKGCONF" list --simple-output) ; do printf "%s:" "${dep}" && "${GHC_PKG}" --global --global-package-db "$PKGCONF" field "${dep}" abi --simple-output ; done | tr '\n' ' ' | xargs)"
 		if [ "${ABI_HASHES}" != "${MY_ABI_HASHES}" ] ; then
 			err_abi "${MY_ABI_HASHES}"
 			return 3