diff --git a/ChangeLog b/ChangeLog
index 349eb3181cfa0b075ab39ab47df0e7370581907d..28893942e313cfe1d8ae593a8fac5cf956d438f1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2008-06-06  Per Jonsson  <poj@lysator.liu.se>
+
+	Added the update-origin-server utility.
+	* update-origin-server: New script. Updates the server part of the
+	origin files for a category on a partion when the category has
+	been moved to a new server.
+	* Makefile (install): Added update-origin-server
+
 2008-06-04  Per Jonsson  <poj@lysator.liu.se>
 
 	Give info when exiting due to "finish" and "stop" files. Make
diff --git a/Makefile b/Makefile
index 7e2564d31b93a3971cc18d5fa07d3f57bcf90d37..ff1f45f8f685ec0ff8ce8cb5b61ecfe3988f22cb 100644
--- a/Makefile
+++ b/Makefile
@@ -17,6 +17,7 @@ install: install-one-task
 	cp lysrdiff-label-disk $(BINDIR)/
 	cp lysrdiff-sizechange.py $(BINDIR)/
 	cp lysrdiff-settings $(BINDIR)/
+	cp update-origin-server $(BINDIR)/
 
 install-one-task:
 	cp backup-one-task $(BINDIR)/
diff --git a/update-origin-server b/update-origin-server
new file mode 100755
index 0000000000000000000000000000000000000000..e60092557b9cf93f20bc1e38a4628423c7ac169f
--- /dev/null
+++ b/update-origin-server
@@ -0,0 +1,64 @@
+#!/bin/sh
+
+usage () {
+    echo $0: usage: $0 [ options ] disk part category oldserver newserver >&2
+    echo Example: $0 0 1 lsvn stalingrad plantagenet >&2
+    echo Recognized options: >&2
+    echo ' --non-interactive Automatically commit changes' >&2
+    echo 'Always performes changes to the "perm" disk.' >&2
+}
+
+interactive=1
+
+while [ $# -gt 1 ]
+do
+  case "x$1" in
+    x--non-interactive)
+      shift
+      interactive=0;;
+    x--*)
+      usage
+      exit 1;;
+    x*) break;;
+  esac
+done  
+
+if [ $# != 5 ]
+then
+    usage
+    exit 1
+fi
+
+disk="$1"
+part="$2"
+lysrdiffpart="$1/$2"
+category="$3"
+oldserver="$4"
+newserver="$5"
+
+category_dir="/lysrdiff/$disk/perm/$part/lysrdiff/backups/$category"
+
+if [ ! -d $category_dir ]
+then
+    echo "$category not present on $lysrdiffpart" >&2
+    exit 1
+fi
+
+cd $category_dir
+for sc in *
+do
+    echo "------ $sc"
+    OLD=$sc/origin
+    NEW=$sc/origin.new
+    cat $OLD | sed "s/^$oldserver/$newserver/" > $NEW
+    diff -u $OLD $NEW 
+    if [ $? != 0 ]
+    then
+	if [ $interactive = 1 ]
+	then
+	    echo -n '[CONFIRM] '
+	    read line
+	fi
+	mv -f $NEW $OLD
+    fi
+done