diff --git a/fish-1.21.2-fallback.patch b/fish-1.21.2-fallback.patch
new file mode 100644
index 0000000..a51d6e7
--- /dev/null
+++ b/fish-1.21.2-fallback.patch
@@ -0,0 +1,133 @@
+diff -Nur fish-1.21.2-orig/fallback.h fish-1.21.2/fallback.h
+--- fish-1.21.2-orig/fallback.h	2006-03-09 13:01:19.000000000 +0100
++++ fish-1.21.2/fallback.h	2006-03-10 17:03:15.000000000 +0100
+@@ -31,7 +31,7 @@
+    strings and decimal numbers, position (%n), field width and
+    precision.
+ */
+-int fwprintf( FILE *f, const wchar_t *format, ... );
++
+ 
+ 
+ /**
+@@ -41,7 +41,7 @@
+    strings and decimal numbers, position (%n), field width and
+    precision.
+ */
+-int swprintf( wchar_t *str, size_t l, const wchar_t *format, ... );
++
+ 
+ /**
+    Print formated string. Some operating systems (Like NetBSD) do not
+@@ -50,7 +50,7 @@
+    strings and decimal numbers, position (%n), field width and
+    precision.
+ */
+-int wprintf( const wchar_t *format, ... );
++
+ 
+ /**
+    Print formated string. Some operating systems (Like NetBSD) do not
+@@ -59,7 +59,7 @@
+    strings and decimal numbers, position (%n), field width and
+    precision.
+ */
+-int vwprintf( const wchar_t *filter, va_list va );
++
+ 
+ /**
+    Print formated string. Some operating systems (Like NetBSD) do not
+@@ -68,7 +68,7 @@
+    strings and decimal numbers, position (%n), field width and
+    precision.
+ */
+-int vfwprintf( FILE *f, const wchar_t *filter, va_list va );
++
+ 
+ /**
+    Print formated string. Some operating systems (Like NetBSD) do not
+@@ -77,31 +77,31 @@
+    strings and decimal numbers, position (%n), field width and
+    precision.
+ */
+-int vswprintf( wchar_t *out, size_t n, const wchar_t *filter, va_list va );
++
+ 
+ /**
+    Fallback implementation of fgetwc
+ */
+-wint_t fgetwc(FILE *stream);
++
+ 
+ /**
+    Fallback implementation of getwc
+ */
+-wint_t getwc(FILE *stream);
++
+ 
+ /**
+    Fallback implementation of fputwc
+ */
+-wint_t fputwc(wchar_t wc, FILE *stream);
++
+ /**
+    Fallback implementation of putwc
+ */
+-wint_t putwc(wchar_t wc, FILE *stream);
++
+ 
+ /**
+    Fallback implementation of wcstok. Uses code borrowed from glibc.
+ */
+-wchar_t *wcstok(wchar_t *wcs, const wchar_t *delim, wchar_t **ptr);
++
+ 
+ 
+ /**
+@@ -115,15 +115,15 @@
+    real wcwidth. Therefore, the fallback wcwidth assumes any printing
+    character takes up one column and anything else uses 0 columns.
+ */
+-int wcwidth( wchar_t c );
++
+ 
+ /**
+    Create a duplicate string. Wide string version of strdup. Will
+    automatically exit if out of memory.
+ */
+-wchar_t *wcsdup(const wchar_t *in);
+ 
+-size_t wcslen(const wchar_t *in);
++
++
+ 
+ /**
+    Case insensitive string compare function. Wide string version of
+@@ -136,7 +136,7 @@
+    fish and guaranteed to be a sane, english word. Using wcscasecmp on
+    a user-supplied string should be considered a bug.
+ */
+-int wcscasecmp( const wchar_t *a, const wchar_t *b );
++
+ 
+ /**
+    Case insensitive string compare function. Wide string version of
+@@ -149,7 +149,7 @@
+    fish and guaranteed to be a sane, english word. Using wcsncasecmp on
+    a user-supplied string should be considered a bug.
+ */
+-int wcsncasecmp( const wchar_t *a, const wchar_t *b, int count );
++
+ 
+ /**
+    Returns a newly allocated wide character string wich is a copy of
+@@ -173,9 +173,6 @@
+    to represent numbers higher than 9. Higher bases than 36 are not
+    supported.
+ */
+-long wcstol(const wchar_t *nptr,
+-			wchar_t **endptr,
+-			int base);
+ 
+ 
+ 
diff --git a/fish.spec b/fish.spec
index a24a862..b3d40c1 100644
--- a/fish.spec
+++ b/fish.spec
@@ -1,15 +1,15 @@
 Summary:                A friendly interactive shell
 Name:                   fish
 
-Version:                1.14.0
-Release:                2%{?dist}
+Version:                1.21.2
+Release:                1%{?dist}
 
 License:                GPL
 Group:                  System Environment/Shells
 URL:                    http://roo.no-ip.org/fish/
 
 Source0:                http://roo.no-ip.org/%{name}/files/%{version}/%{name}-%{version}.tar.bz2
-Patch0:                 fish-1.14.0-wutil.patch
+Patch0:                 fish-1.21.2-fallback.patch
 
 BuildRoot:              %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires:          doxygen ncurses-devel
@@ -22,8 +22,7 @@ is simple but incompatible with other shell languages.
 
 %prep
 %setup -q
-%patch0 -p1 -b .wutil
-
+%patch0 -p1 -b .fallback
 
 %build
 
@@ -34,6 +33,8 @@ make %{?_smp_mflags}
 rm -rf $RPM_BUILD_ROOT
 make install DESTDIR="$RPM_BUILD_ROOT" 
 
+%find_lang %{name}.\*
+
 %clean
 rm -rf $RPM_BUILD_ROOT
 
@@ -48,31 +49,38 @@ if [ "$1" = 0 ]; then
 	mv %_sysconfdir/fish.tmp %_sysconfdir/shells
 fi
 
-%files
+%files -f %{name}.\*.lang
 %defattr(-,root,root,-)
 %doc %_datadir/doc/%{name}-%{version}
 %_mandir/man1/fish.1*
 %_mandir/man1/xsel.1x*
 %_mandir/man1/mimedb.1*
 %_mandir/man1/set_color.1*
-%_mandir/man1/tokenize.1*
 %_mandir/man1/count.1*
+%_mandir/man1/fishd.1.*
+%_mandir/man1/fish_pager.1.*
 %attr(0755,root,root) %_bindir/fish
 %attr(0755,root,root) %_bindir/fishd
 %attr(0755,root,root) %_bindir/fish_pager
 %attr(0755,root,root) %_bindir/xsel
 %attr(0755,root,root) %_bindir/set_color
-%attr(0755,root,root) %_bindir/tokenize
 %attr(0755,root,root) %_bindir/mimedb
 %attr(0755,root,root) %_bindir/count
+%dir %_datadir/fish/completions
+%config %_datadir/fish/completions/*.fish
+%dir %_datadir/fish/functions
+%config %_datadir/fish/functions/*.fish
+%_datadir/fish/fish
 %config %_sysconfdir/fish
 %config %_sysconfdir/fish_inputrc
 %dir %_sysconfdir/fish.d
 %config %_sysconfdir/fish.d/fish_*.fish
-%dir %_sysconfdir/fish.d/completions
-%config %_sysconfdir/fish.d/completions/*.fish
 
 %changelog
+* Mon Mar 13 2006 Oliver Falk <oliver@linux-kernel.at>		- 1.21.2-1
+- Update
+- Applied patch provided by Michael Schwendt
+
 * Fri Mar 10 2006 Oliver Falk <oliver@linux-kernel.at>		- 1.14.0-2
 - Fix buildreqs
 - Fix wutil.h