diff --git a/tools/font_convert.sh b/tools/font_convert.sh
new file mode 100755
index 0000000000000000000000000000000000000000..b90edb8511ab9d6012d8688e302a74a80410c6a4
--- /dev/null
+++ b/tools/font_convert.sh
@@ -0,0 +1,106 @@
+#! /bin/bash
+
+# default settings
+TMPDIR=/tmp/fconv.$$;
+TFILE=`tempfile`;
+
+# Where the fnt2bdf utility resides 
+FC=$HOME""/wine/tools/fnt2bdf;
+# which OEM_CHARSET to use
+CHARSET="winsys";
+TARGET=/usr/X11R6/lib/X11/fonts/misc;
+BDFTOPCF=/usr/X11R6/bin/bdftopcf;
+PAT="*.fon";
+Q="";
+OLDPWD=`pwd`; 
+
+usage () {
+    echo "usage: "`basename $0`" [-q] [-c charset] [-t fontdir] [-b bdftopcf] [-f fnt2bdf]"
+    echo "       [-p pattern] windir"
+    echo 
+    echo "this utility scans a directory and its subdirectories for bitmap-fonts"
+    echo "in Windows format, converts them to PCF-fons and installs them. If X"
+    echo "is running, the X fontpath is re-adjusted."
+    echo 
+    echo "options:"
+    echo " -q          quit operation."
+    echo " -c charset  charset name for OEM_CHARSET fonts, default: $CHARSET"
+    echo " -t fontdir  directory to install the converted fonts in. This"
+    echo "             directory should be a known fontdirectory to X, default:"
+    echo "             $TARGET";
+    echo " -b bdftopcf name of the program to call for bdf to pcf conversion,"
+    echo "             default: $BDFTOPCF";
+    echo " -f fnt2bdf  name of the program to call for winfont to bdf conversion,"
+    echo "             default: $FC"
+    echo " -p pattern  Shell-Pattern of the filenames to look for. By default, the"
+    echo "             utility will look for the pattern "$PAT" (case insensitive)."
+    echo " windir      base directory to search."
+    exit 1;
+}
+
+
+while [ "$1" ]; do
+    case $1 in
+	-c ) shift; if [ "$1" ]; then CHARSET=$1; shift; else usage; fi; ;;
+	-t ) shift; if [ "$1" ]; then TARGET=$1; shift; else usage; fi; ;;
+	-b ) shift; if [ "$1" ]; then BDFTOPCF=$1; shift; else usage; fi; ;;
+	-f ) shift; if [ "$1" ]; then FC=$1; shift; else usage; fi; ;;
+	-p ) shift; if [ "$1" ]; then PAT=$1; shift; else usage; fi; ;;
+        -q ) shift; Q=":"; ;;
+	-* ) usage; ;;
+	* ) if [ "$WIND" ]; then usage; else WIND=$1; shift; fi; ;;  
+    esac;
+done;
+
+if [ ! "$WIND" ]; then usage; fi;
+if [ ! -d "$WIND" ]; then $Q echo "$WIND is not a directory"; exit 1; fi;
+if [ ! -d "$TARGET" ]; then $Q echo "$TARGET is not a directory"; exit 1; fi;
+type -p $BDFTOPCF 1>/dev/null || { $Q echo "Can 't execute $BDFTOPCF"; exit 1; }
+type -p $FC 1>/dev/null || { $Q echo "Can't execute $FC"; exit 1; }
+
+$Q echo -n "looking for bitmap fonts... "
+FONTS=`find "$WIND" -iname $PAT 1>$TFILE 2>/dev/null`;
+if [ $? -ne 0 ]; then 
+    $Q echo "$PAT is a invalid sarch expression"; exit 1;
+fi;
+i=0;
+{ while read dummy; do FONTS[$i]="$dummy"; i=$[$i+1]; done; } < $TFILE
+rm $TFILE;
+$Q echo "done."
+
+if [ -z "$FONTS" ]; then $Q echo "Can't find any fonts in $WIND"; exit 1; fi; 
+
+mkdir $TMPDIR;
+cd $TMPDIR; 
+
+for i in "${FONTS[@]}"; do 
+    FNT=`basename "$i"`; FNT=${FNT%.???};
+    $Q echo "converting $i";
+    if [ "$Q" ]; then 
+	$FC -c $CHARSET -f $FNT "$i" 2>/dev/null;
+    else
+	$FC -c $CHARSET -f $FNT "$i";
+    fi;
+done;
+
+for i in *.bdf; do
+    if [ "$i" == "*.bdf" ]; then echo "No fonts extracted"; exit 0; fi; 
+    bdftopcf -o "${i%.???}.pcf" "$i";
+    $Q echo "installing ${i%.???}.pcf";
+    mv "${i%.???}.pcf" $TARGET 2>/dev/null
+    if [ $? -ne 0 ]; then 
+	$Q echo "Can't install fonts to $TARGET. Are your root?"; cd $OLDPWD; rm -rf $TMPDIR; exit 1; fi;
+    rm "$i";
+done;
+
+cd $TARGET;
+$Q echo "running mkfontdir"; 
+if [ "$Q" ]; then
+    mkfontdir 1>/dev/null 2>/dev/null;
+else
+    mkfontdir
+fi;
+rmdir $TMPDIR;
+
+if [ "$DISPLAY" ]; then $Q echo "adjusting X font database"; xset fp rehash; fi;
+