--- /dev/null
+#!/bin/sh
+
+. patchfns >/dev/null || . /usr/lib/patch-scripts/patchfns >/dev/null || { \
+ echo "Impossible to find my library 'patchfns'."
+ echo "Check your install, or go to the right directory"
+ exit 1
+}
+
+do_remove()
+{
+ if patch -R -p1 -s -i $P/patches/"$1".patch
+ then
+ true
+ else
+ echo SOMETHING WENT WRONG
+ exit 1
+ fi
+}
+
+kill_old_ones()
+{
+ FILES=$(cat $P/pc/$1.pc)
+ for file in $FILES
+ do
+ rm -f "$file"~"$1"
+ done
+}
+
+usage()
+{
+ echo "Usage: rpatch patchname"
+ exit 1
+}
+
+if [ $# == 0 ]
+then
+ usage
+fi
+
+PATCH_NAME=$(stripit $1)
+
+warn_top_current
+
+if is_applied "$PATCH_NAME"
+then
+ if can_remove "$PATCH_NAME"
+ then
+ do_remove "$PATCH_NAME"
+ kill_old_ones "$PATCH_NAME"
+ remove_from_db "$PATCH_NAME"
+ else
+ echo "$PATCH_NAME" does not remove cleanly
+ exit 1
+ fi
+else
+ echo "$PATCH_NAME" is not applied
+ exit 1
+fi
+
+top=$(top_patch)
+if [ x"$top" == x ]
+then
+ msg="no patches applied"
+else
+ msg="now at $top"
+fi
+
+echo Removed $PATCH_NAME, $msg
+