--- /dev/null
+#!/bin/bash
+# Invoke as xsltdepcomp <out-file> <dep-file> <xsltproc-args>
+set -e
+
+outfile="$1"
+depfile="$2"
+shift 2
+
+set -o pipefail
+trap 'rm -f $depfile.tmp' EXIT
+
+xsltproc --load-trace "$@" 2>&1 >"$outfile" \
+| sed -f /dev/fd/3 3<<EOF | makedepfile "$outfile" >"$depfile.tmp" \
+&& mv "$depfile.tmp" "$depfile"
+s/^Loaded URL="\(.*\)" ID=".*"$/\1/
+td
+w /dev/stderr
+/^warning: failed to load external entity / q 6
+d
+:d
+EOF