diff --git a/399.midipix_sh.build b/399.midipix_sh.build
index 4aa41da..906cd24 100644
--- a/399.midipix_sh.build
+++ b/399.midipix_sh.build
@@ -5,15 +5,53 @@
 if ! is_build_script_done install; then
 	IFS=""; cat <<EOF > ${PREFIX}/midipix.sh;
 #!/bin/sh
-MIDIPIX_DRIVE=\${1:-z};
-MIDIPIX_DNAME="\${2:-}";
-MIDIPIX_PATH="/\${MIDIPIX_DRIVE}\${MIDIPIX_DNAME:+/\${MIDIPIX_DNAME}}";
-mintty -h always -e /bin/sh -c "
-	set -o errexit; stty raw -echo;
-	mount --change-cygdrive-prefix /;
-	cd \"\${MIDIPIX_PATH}/native/bin\";
-	export PATH=\"\${MIDIPIX_PATH}/native/bin:\${MIDIPIX_PATH}/native/lib\";
-	./ntctty.exe -e chroot /native /bin/bash";
+#
+MIDIPIX_PATH_DEFAULTS="/c/Midipix /z";
+
+if [ "\${1}" = -h ]; then
+        echo "usage: \$0 [drive_letter [dirname]]";
+        exit 1;
+elif [ \${#} -eq 0 ]; then
+for MIDIPIX_PATH in \${MIDIPIX_PATH_DEFAULTS}; do
+	[ -d /cygdrive\${MIDIPIX_PATH} ] || continue;
+	MIDIPIX_DRIVE=\${MIDIPIX_PATH#/};
+	MIDIPIX_DRIVE=\${MIDIPIX_DRIVE%%/*};
+	MIDIPIX_PNAME=\${MIDIPIX_PATH#/\${MIDIPIX_DRIVE}};
+	MIDIPIX_PNAME=\${MIDIPIX_PNAME#/};
+	break;
+done;
+else
+	MIDIPIX_DRIVE="\${1}"; MIDIPIX_PNAME="\${2}";
+	if [ "\${MIDIPIX_DRIVE#*[ 	]*}" != "\${MIDIPIX_DRIVE}" ]\\
+	|| [ "\${MIDIPIX_PNAME#*[ 	]*}" != "\${MIDIPIX_PNAME}" ]; then
+		echo "Error: drive_letter/dirname must not contain SP (\\\` ') or VT (\\\`\\\\\t') characters.";
+		exit 1;
+	fi;
+fi;
+MIDIPIX_PATH=/\${MIDIPIX_DRIVE}\${MIDIPIX_PNAME:+/\${MIDIPIX_PNAME}};
+if [ ! -d /cygdrive\${MIDIPIX_PATH} ]; then
+	echo "Error: Midipix path non-existent or invalid (\\\`\${MIDIPIX_PATH}'.)";
+	exit 1;
+else
+	echo "Midipix drive letter.....: \${MIDIPIX_DRIVE}";
+	echo "Midipix pathname.........: \${MIDIPIX_PNAME}";
+	echo "Absolute Midipix pathname: \${MIDIPIX_PATH}";
+	echo --------------------------------------------------------
+	echo WARNING: The cygdrive path prefix will be changed to /
+	echo whilst the Midipix shell window is running. It will be
+	echo reset to its original value of /cygdrive after it exits.
+	echo --------------------------------------------------------
+	mintty -h always -e /bin/sh -c "
+		set -o errexit; stty raw -echo;
+		mount --change-cygdrive-prefix /;
+		cd \${MIDIPIX_PATH}/native/bin;
+		export PATH=\${MIDIPIX_PATH}/native/bin:\${MIDIPIX_PATH}/native/lib;
+		./ntctty.exe -e chroot //\${MIDIPIX_PATH#/}/native /bin/bash";
+	echo --------------------------------------------------------
+	echo Resetting cygdrive path prefix to /.
+	echo --------------------------------------------------------
+	mount --change-cygdrive-prefix /cygdrive;
+fi;
 EOF
 	chmod +x ${PREFIX}/midipix.sh;
 	set_build_script_done install finish;
diff --git a/build.sh b/build.sh
index d19fab4..a4be77e 100755
--- a/build.sh
+++ b/build.sh
@@ -109,7 +109,7 @@ if [ $(( ${BUILD_NFINI} + ${BUILD_NSKIP} )) -ge 0 ]					\
 	log_msg info "Converted symbolic links in ${PREFIX_BASENAME}/lib to hard links.";
 	tar -cJpf ${TARBALL_FNAME_PREFIX}${BUILD_USER}@${BUILD_HNAME}-${BUILD_DATE_START}.tar.xz\
 		$(find_with_no_paths "${TARBALL_EXCLUDE_PATHS} native/lib.bak" .	\
-			-mindepth 1 -maxdepth 2 -type d -not -path ./native);
+			-mindepth 1 -maxdepth 2 -type d -not -path ./native) midipix.sh;
 	log_msg info "Finished building distribution tarball.";
 	rm -rf ${PREFIX_BASENAME}/lib; mv ${PREFIX_BASENAME}/lib.bak ${PREFIX_BASENAME}/lib;
 	log_msg info "Restored ${PREFIX_BASENAME}/lib.";