diff --git a/ulo/isabelle-prepare.sh b/ulo/isabelle-prepare.sh
index b1e787cee195ae604f9df22e6f1fcd25b9bc5ec2..5f6e6fa4f67b1c459fa135b8d11558f23a4d2a3c 100755
--- a/ulo/isabelle-prepare.sh
+++ b/ulo/isabelle-prepare.sh
@@ -14,6 +14,9 @@ if [ ! $# -eq 1 ]; then
     exit 1
 fi
 
+script_dir=$(dirname "$0")
+cd "$script_dir"
+
 directory="$1"
 files=$(find "$directory" -name "*.xz")
 
@@ -22,12 +25,12 @@ for file in $files; do
 
     # the filename of the extracted (uncompressed) file
     rdf_file=$(echo "$file" | sed 's/\.xz//')
+    work_file=$(mktemp)
+
+    # uncompress, fix iris
+    xzcat "$file" | ./fix-rdf-file.py > "$work_file"
+    mv "$work_file" "$rdf_file"
 
-    # uncompress, fix iris, compress again
-    unxz "$file"
-    sed -i 's/|/%7C/g' "$rdf_file"
-    sed -i 's/\\/%5C/g' "$rdf_file"
-    sed -i 's/ /%20/g' "$rdf_file"
-    sed -i 's/\^/%5E/g' "$rdf_file"
+    # compress again
     gzip "$rdf_file"
 done