diff --git a/helper-templates/replace-interpreter.sh b/helper-templates/replace-interpreter.sh
new file mode 100644
index 0000000000..662f695d50
--- /dev/null
+++ b/helper-templates/replace-interpreter.sh
@@ -0,0 +1,47 @@
+#
+# This helper replaces shebang paths pointing to the correct ones
+# as used by xbps. Multiple languages are supported:
+#
+#	- GNU Bash
+#	- Perl
+#	- Python
+#
+
+bash_regexp=".*sh"
+perl_regexp=".*perl[^[:space:]]*"
+python_regexp=".*python[^[:space:]]*"
+
+replace_interpreter()
+{
+	local lang="$1"
+	local file="$2"
+	local trsb=
+	local orsb=
+
+	[ -z $lang -o -z $file ] && return 1
+
+	case $lang in
+	bash)
+		orsb=$bash_regexp
+		trpath="$XBPS_MASTERDIR/bin/bash"
+		;;
+	perl)
+		orsb=$perl_regexp
+		trpath="$XBPS_MASTERDIR/bin/perl"
+		;;
+	python)
+		orsb=$python_regexp
+		trpath="$XBPS_MASTERDIR/bin/python"
+		;;
+	*)
+		;;
+	esac
+
+	if [ -f $file ]; then
+		$sed_cmd -e '1s|^#![[:space:]]*\$orsb|#!\$trpath|'	\
+			$file > $file.in && $mv_cmd $file.in $file &&	\
+			echo "=> Transformed $lang script: $file."
+	else
+		echo "=> Ignoring unexisten $lang script: $file."
+	fi
+}