diff --git a/tcsh-6.18.01.patch b/tcsh-6.18.01.patch
new file mode 100644
index 0000000..743b60c
--- /dev/null
+++ b/tcsh-6.18.01.patch
@@ -0,0 +1,426 @@
+Index: Fixes
+===================================================================
+RCS file: /p/tcsh/cvsroot/tcsh/Fixes,v
+retrieving revision 1.448
+retrieving revision 1.451
+diff -u -r1.448 -r1.451
+--- Fixes 14 Jan 2012 16:25:09 -0000 1.448
++++ Fixes 13 Feb 2012 16:33:50 -0000 1.451
+@@ -1,3 +1,10 @@
++ 6. V6.18.01 - 20120214
++ 5. fix interruptible wait again
++ 4. ignore bogus compiler overflow message
++ 3. cleanup ifdefs in utmp code, and provide default array entries
++ 2. Ignore #machine entries in host.defs
++ 1. Detect missing ) in gethost.c (Corinna Vinschen)
++
+ 104. V6.18.00 - 20120114
+ 103. remove unused variables.
+ 102. Make gethost use definitions for x __x__ and __x automatically.
+Index: README
+===================================================================
+RCS file: /p/tcsh/cvsroot/tcsh/README,v
+retrieving revision 1.57
+retrieving revision 1.58
+diff -u -r1.57 -r1.58
+--- README 14 Jan 2012 16:25:09 -0000 1.57
++++ README 13 Feb 2012 16:33:50 -0000 1.58
+@@ -1,4 +1,4 @@
+-This is tcsh version 6.18.00. Tcsh is a version of the Berkeley
++This is tcsh version 6.18.01. Tcsh is a version of the Berkeley
+ C-Shell, with the addition of: a command line editor, command and file
+ name completion, listing, etc. and a bunch of small additions to the
+ shell itself.
+Index: configure
+===================================================================
+RCS file: /p/tcsh/cvsroot/tcsh/configure,v
+retrieving revision 3.77
+retrieving revision 3.78
+diff -u -r3.77 -r3.78
+--- configure 14 Jan 2012 16:25:37 -0000 3.77
++++ configure 13 Feb 2012 16:34:09 -0000 3.78
+@@ -1,6 +1,6 @@
+ #! /bin/sh
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by GNU Autoconf 2.68 for tcsh 6.18.00.
++# Generated by GNU Autoconf 2.68 for tcsh 6.18.01.
+ #
+ # Report bugs to .
+ #
+@@ -560,8 +560,8 @@
+ # Identity of this package.
+ PACKAGE_NAME='tcsh'
+ PACKAGE_TARNAME='tcsh'
+-PACKAGE_VERSION='6.18.00'
+-PACKAGE_STRING='tcsh 6.18.00'
++PACKAGE_VERSION='6.18.01'
++PACKAGE_STRING='tcsh 6.18.01'
+ PACKAGE_BUGREPORT='http://bugs.gw.com/'
+ PACKAGE_URL=''
+
+@@ -1232,7 +1232,7 @@
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+-\`configure' configures tcsh 6.18.00 to adapt to many kinds of systems.
++\`configure' configures tcsh 6.18.01 to adapt to many kinds of systems.
+
+ Usage: $0 [OPTION]... [VAR=VALUE]...
+
+@@ -1297,7 +1297,7 @@
+
+ if test -n "$ac_init_help"; then
+ case $ac_init_help in
+- short | recursive ) echo "Configuration of tcsh 6.18.00:";;
++ short | recursive ) echo "Configuration of tcsh 6.18.01:";;
+ esac
+ cat <<\_ACEOF
+
+@@ -1393,7 +1393,7 @@
+ test -n "$ac_init_help" && exit $ac_status
+ if $ac_init_version; then
+ cat <<\_ACEOF
+-tcsh configure 6.18.00
++tcsh configure 6.18.01
+ generated by GNU Autoconf 2.68
+
+ Copyright (C) 2010 Free Software Foundation, Inc.
+@@ -2150,7 +2150,7 @@
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+
+-It was created by tcsh $as_me 6.18.00, which was
++It was created by tcsh $as_me 6.18.01, which was
+ generated by GNU Autoconf 2.68. Invocation command line was
+
+ $ $0 $@
+@@ -7272,7 +7272,7 @@
+ # report actual input values of CONFIG_FILES etc. instead of their
+ # values after options handling.
+ ac_log="
+-This file was extended by tcsh $as_me 6.18.00, which was
++This file was extended by tcsh $as_me 6.18.01, which was
+ generated by GNU Autoconf 2.68. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+@@ -7338,7 +7338,7 @@
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ ac_cs_version="\\
+-tcsh config.status 6.18.00
++tcsh config.status 6.18.01
+ configured by $0, generated by GNU Autoconf 2.68,
+ with options \\"\$ac_cs_config\\"
+
+Index: configure.in
+===================================================================
+RCS file: /p/tcsh/cvsroot/tcsh/configure.in,v
+retrieving revision 3.98
+retrieving revision 3.99
+diff -u -r3.98 -r3.99
+--- configure.in 14 Jan 2012 16:25:09 -0000 3.98
++++ configure.in 13 Feb 2012 16:33:50 -0000 3.99
+@@ -7,10 +7,10 @@
+ dnl
+ dnl Written by Kaveh Ghazi (ghazi@caip.rutgers.edu) 5/11/96.
+ dnl
+-dnl $tcsh: configure.in,v 3.98 2012/01/14 16:25:09 christos Exp $
++dnl $tcsh: configure.in,v 3.99 2012/02/13 16:33:50 christos Exp $
+
+ AC_PREREQ([2.59])dnl Minimum Autoconf version required.
+-AC_INIT([tcsh], [6.18.00], [http://bugs.gw.com/])
++AC_INIT([tcsh], [6.18.01], [http://bugs.gw.com/])
+ AC_CONFIG_MACRO_DIR([m4])
+ AC_CONFIG_SRCDIR([tc.vers.c])
+ AC_CONFIG_HEADERS([config.h])
+Index: gethost.c
+===================================================================
+RCS file: /p/tcsh/cvsroot/tcsh/gethost.c,v
+retrieving revision 1.14
+retrieving revision 1.15
+diff -u -r1.14 -r1.15
+--- gethost.c 11 Jan 2012 20:20:15 -0000 1.14
++++ gethost.c 15 Jan 2012 17:14:54 -0000 1.15
+@@ -1,4 +1,4 @@
+-/* $Header: /p/tcsh/cvsroot/tcsh/gethost.c,v 1.14 2012/01/11 20:20:15 christos Exp $ */
++/* $Header: /p/tcsh/cvsroot/tcsh/gethost.c,v 1.15 2012/01/15 17:14:54 christos Exp $ */
+ /*
+ * gethost.c: Create version file from prototype
+ */
+@@ -32,7 +32,7 @@
+ */
+ #include "sh.h"
+
+-RCSID("$tcsh: gethost.c,v 1.14 2012/01/11 20:20:15 christos Exp $")
++RCSID("$tcsh: gethost.c,v 1.15 2012/01/15 17:14:54 christos Exp $")
+
+ #ifdef SCO
+ # define perror __perror
+@@ -161,14 +161,17 @@
+ static const char *
+ explode(const char *defs)
+ {
+- static const char def[] = "defined(";
++ static const char def[] = "defined("; /* ) */
+ static char *buf;
+ size_t len;
+- const char *ptr, *bptr, *eptr, *name;
++ const char *ptr, *bptr, *eptr = NULL, *name;
+ size_t buflen = 0;
+
++ if (strstr(defs, "#machine(" /* ) */))
++ return defs;
++
+ free(buf);
+- buf = strdup("(");
++ buf = strdup("("); /* ) */
+ for (ptr = defs; (bptr = strstr(ptr, def)) != NULL; ptr = eptr + 1) {
+ if (ptr != bptr)
+ buf = cat(buf, ptr, bptr - ptr);
+@@ -197,6 +200,10 @@
+ buf = cat(buf, undername, len + 3);
+ }
+ }
++ if (!eptr) {
++ (void) fprintf(stderr, "%s: invalid input `%s'\n", pname, defs);
++ return defs;
++ }
+ buf = cat(buf, eptr + 1, 0);
+ buf = cat(buf, ")", 0);
+ return buf;
+Index: patchlevel.h
+===================================================================
+RCS file: /p/tcsh/cvsroot/tcsh/patchlevel.h,v
+retrieving revision 3.179
+retrieving revision 3.180
+diff -u -r3.179 -r3.180
+--- patchlevel.h 14 Jan 2012 16:25:09 -0000 3.179
++++ patchlevel.h 13 Feb 2012 16:33:50 -0000 3.180
+@@ -1,4 +1,4 @@
+-/* $Header: /p/tcsh/cvsroot/tcsh/patchlevel.h,v 3.179 2012/01/14 16:25:09 christos Exp $ */
++/* $Header: /p/tcsh/cvsroot/tcsh/patchlevel.h,v 3.180 2012/02/13 16:33:50 christos Exp $ */
+ /*
+ * patchlevel.h: Our life story.
+ */
+@@ -8,7 +8,7 @@
+ #define ORIGIN "Astron"
+ #define REV 6
+ #define VERS 18
+-#define PATCHLEVEL 0
+-#define DATE "2012-01-14"
++#define PATCHLEVEL 1
++#define DATE "2012-02-14"
+
+ #endif /* _h_patchlevel */
+Index: sh.proc.c
+===================================================================
+RCS file: /p/tcsh/cvsroot/tcsh/sh.proc.c,v
+retrieving revision 3.120
+retrieving revision 3.121
+diff -u -r3.120 -r3.121
+--- sh.proc.c 21 Apr 2011 20:28:28 -0000 3.120
++++ sh.proc.c 25 Jan 2012 15:34:41 -0000 3.121
+@@ -1,4 +1,4 @@
+-/* $Header: /p/tcsh/cvsroot/tcsh/sh.proc.c,v 3.120 2011/04/21 20:28:28 christos Exp $ */
++/* $Header: /p/tcsh/cvsroot/tcsh/sh.proc.c,v 3.121 2012/01/25 15:34:41 christos Exp $ */
+ /*
+ * sh.proc.c: Job manipulations
+ */
+@@ -32,7 +32,7 @@
+ */
+ #include "sh.h"
+
+-RCSID("$tcsh: sh.proc.c,v 3.120 2011/04/21 20:28:28 christos Exp $")
++RCSID("$tcsh: sh.proc.c,v 3.121 2012/01/25 15:34:41 christos Exp $")
+
+ #include "ed.h"
+ #include "tc.h"
+@@ -594,6 +594,7 @@
+ {
+ struct process *pp;
+ sigset_t pause_mask;
++ int opintr_disabled, gotsig;
+
+ USE(c);
+ USE(v);
+@@ -608,7 +609,11 @@
+ pp->p_flags & PRUNNING) {
+ (void)handle_pending_signals();
+ sigsuspend(&pause_mask);
+- if (handle_pending_signals())
++ opintr_disabled = pintr_disabled;
++ pintr_disabled = 0;
++ gotsig = handle_pending_signals();
++ pintr_disabled = opintr_disabled;
++ if (gotsig)
+ break;
+ goto loop;
+ }
+Index: sh.set.c
+===================================================================
+RCS file: /p/tcsh/cvsroot/tcsh/sh.set.c,v
+retrieving revision 3.82
+retrieving revision 3.83
+diff -u -r3.82 -r3.83
+--- sh.set.c 14 Apr 2011 18:25:25 -0000 3.82
++++ sh.set.c 15 Jan 2012 17:15:28 -0000 3.83
+@@ -1,4 +1,4 @@
+-/* $Header: /p/tcsh/cvsroot/tcsh/sh.set.c,v 3.82 2011/04/14 18:25:25 christos Exp $ */
++/* $Header: /p/tcsh/cvsroot/tcsh/sh.set.c,v 3.83 2012/01/15 17:15:28 christos Exp $ */
+ /*
+ * sh.set.c: Setting and Clearing of variables
+ */
+@@ -32,7 +32,7 @@
+ */
+ #include "sh.h"
+
+-RCSID("$tcsh: sh.set.c,v 3.82 2011/04/14 18:25:25 christos Exp $")
++RCSID("$tcsh: sh.set.c,v 3.83 2012/01/15 17:15:28 christos Exp $")
+
+ #include "ed.h"
+ #include "tw.h"
+@@ -528,7 +528,7 @@
+ {
+ if (n > 9)
+ putn1(n / 10);
+- *putp++ = n % 10 + '0';
++ *putp++ = (Char)(n % 10 + '0');
+ }
+
+ tcsh_number_t
+Index: tc.sig.c
+===================================================================
+RCS file: /p/tcsh/cvsroot/tcsh/tc.sig.c,v
+retrieving revision 3.38
+retrieving revision 3.40
+diff -u -r3.38 -r3.40
+--- tc.sig.c 24 Jan 2011 18:10:26 -0000 3.38
++++ tc.sig.c 25 Jan 2012 15:34:41 -0000 3.40
+@@ -1,4 +1,4 @@
+-/* $Header: /p/tcsh/cvsroot/tcsh/tc.sig.c,v 3.38 2011/01/24 18:10:26 christos Exp $ */
++/* $Header: /p/tcsh/cvsroot/tcsh/tc.sig.c,v 3.40 2012/01/25 15:34:41 christos Exp $ */
+ /*
+ * tc.sig.c: Signal routine emulations
+ */
+@@ -32,7 +32,7 @@
+ */
+ #include "sh.h"
+
+-RCSID("$tcsh: tc.sig.c,v 3.38 2011/01/24 18:10:26 christos Exp $")
++RCSID("$tcsh: tc.sig.c,v 3.40 2012/01/25 15:34:41 christos Exp $")
+
+ #include "tc.wait.h"
+
+Index: tc.who.c
+===================================================================
+RCS file: /p/tcsh/cvsroot/tcsh/tc.who.c,v
+retrieving revision 3.55
+retrieving revision 3.57
+diff -u -r3.55 -r3.57
+--- tc.who.c 10 Jan 2012 17:07:51 -0000 3.55
++++ tc.who.c 17 Jan 2012 20:53:38 -0000 3.57
+@@ -1,4 +1,4 @@
+-/* $Header: /p/tcsh/cvsroot/tcsh/tc.who.c,v 3.55 2012/01/10 17:07:51 christos Exp $ */
++/* $Header: /p/tcsh/cvsroot/tcsh/tc.who.c,v 3.57 2012/01/17 20:53:38 christos Exp $ */
+ /*
+ * tc.who.c: Watch logins and logouts...
+ */
+@@ -32,7 +32,7 @@
+ */
+ #include "sh.h"
+
+-RCSID("$tcsh: tc.who.c,v 3.55 2012/01/10 17:07:51 christos Exp $")
++RCSID("$tcsh: tc.who.c,v 3.57 2012/01/17 20:53:38 christos Exp $")
+
+ #include "tc.h"
+
+@@ -85,7 +85,7 @@
+ # endif /* TCSH_PATH_UTMP || !HAVE_UTMP_H */
+ #endif /* HAVE_UTMPX_H */
+
+-#if !defined(TCSH_USE_UTMPX) && defined(HAVE_UTMP_X)
++#if !defined(TCSH_USE_UTMPX) && defined(HAVE_UTMP_H)
+ # include
+ # if defined(HAVE_STRUCT_UTMP_UT_TV)
+ # define ut_time ut_tv.tv_sec
+@@ -95,9 +95,6 @@
+ # if defined(HAVE_STRUCT_UTMP_UT_USER)
+ # define ut_name ut_user
+ # endif
+-#endif /* !TCSH_USE_UTMPX && HAVE_UTMP_H */
+-
+-#if defined(HAVE_UTMP_H) && !defined(HAVE_UTMPX_H)
+ # ifndef BROKEN_CC
+ # define UTNAMLEN sizeof(((struct utmp *) 0)->ut_name)
+ # define UTLINLEN sizeof(((struct utmp *) 0)->ut_line)
+@@ -111,7 +108,6 @@
+ # else
+ /* give poor cc a little help if it needs it */
+ struct utmp __ut;
+-
+ # define UTNAMLEN sizeof(__ut.ut_name)
+ # define UTLINLEN sizeof(__ut.ut_line)
+ # ifdef HAVE_STRUCT_UTMP_UT_HOST
+@@ -121,19 +117,24 @@
+ # define UTHOSTLEN sizeof(__ut.ut_host)
+ # endif
+ # endif /* HAVE_STRUCT_UTMP_UT_HOST */
+-#endif /* BROKEN_CC */
+-#endif /* HAVE_UTMP_H */
+-
+-#ifndef TCSH_PATH_UTMP
+-# ifdef UTMP_FILE
+-# define TCSH_PATH_UTMP UTMP_FILE
+-# elif defined(_PATH_UTMP)
+-# define TCSH_PATH_UTMP _PATH_UTMP
+-# else
+-# define TCSH_PATH_UTMP "/etc/utmp"
+-# endif /* UTMP_FILE */
+-#endif /* TCSH_PATH_UTMP */
++# endif /* BROKEN_CC */
++# ifndef TCSH_PATH_UTMP
++# ifdef UTMP_FILE
++# define TCSH_PATH_UTMP UTMP_FILE
++# elif defined(_PATH_UTMP)
++# define TCSH_PATH_UTMP _PATH_UTMP
++# else
++# define TCSH_PATH_UTMP "/etc/utmp"
++# endif /* UTMP_FILE */
++# endif /* TCSH_PATH_UTMP */
++#endif /* !TCSH_USE_UTMPX && HAVE_UTMP_H */
+
++#ifndef UTNAMLEN
++#define UTNAMLEN 64
++#endif
++#ifndef UTLINLEN
++#define UTLINLEN 64
++#endif
+
+ struct who {
+ struct who *who_next;
+Index: tcsh.man
+===================================================================
+RCS file: /p/tcsh/cvsroot/tcsh/tcsh.man,v
+retrieving revision 3.237
+retrieving revision 3.238
+diff -u -r3.237 -r3.238
+--- tcsh.man 14 Jan 2012 16:25:09 -0000 3.237
++++ tcsh.man 13 Feb 2012 16:33:50 -0000 3.238
+@@ -72,7 +72,7 @@
+ .\" used here if you can. In particular, please don't use nroff commands
+ .\" which aren't already used herein.
+ .\"
+-.TH TCSH 1 "14 January 2012" "Astron 6.18.00"
++.TH TCSH 1 "14 February 2012" "Astron 6.18.01"
+ .SH NAME
+ tcsh \- C shell with file name completion and command line editing
+ .SH SYNOPSIS
+@@ -5201,7 +5201,7 @@
+ malloc(3), setlocale(3), tty(4), a.out(5), termcap(5), environ(7),
+ termio(7), Introduction to the C Shell
+ .SH VERSION
+-This manual documents tcsh 6.18.00 (Astron) 2012-01-14.
++This manual documents tcsh 6.18.01 (Astron) 2012-02-14.
+ .SH AUTHORS
+ .PD 0
+ .TP 2
diff --git a/tcsh.changes b/tcsh.changes
index 481f678..23d5390 100644
--- a/tcsh.changes
+++ b/tcsh.changes
@@ -1,7 +1,18 @@
+-------------------------------------------------------------------
+Fri Feb 24 14:46:45 UTC 2012 - werner@suse.de
+
+- Update tcsh to patch level 6.18.01 - 20120214
+ * fix interruptible wait again
+ * ignore bogus compiler overflow message
+ * cleanup ifdefs in utmp code, and provide default array entries
+ * Ignore #machine entries in host.defs
+ * Detect missing ) in gethost.c (Corinna Vinschen)
+
+
-------------------------------------------------------------------
Mon Jan 16 10:30:08 UTC 2012 - werner@suse.de
-- Update to tcsh ifinal version V6.18.00
+- Update to tcsh final version V6.18.00
* remove unused variables.
* Make gethost use definitions for x __x__ and __x automatically.
* More utmp fixes
diff --git a/tcsh.spec b/tcsh.spec
index fbc5db4..c9855a4 100644
--- a/tcsh.spec
+++ b/tcsh.spec
@@ -41,6 +41,7 @@ Patch3: tcsh-6.15.00-blanks.dif
Patch4: tcsh-6.17.03-colorls.dif
Patch5: tcsh-6.17.06-dspmbyte.dif
Patch6: tcsh-6.17.10-catalogs.dif
+Patch42: tcsh-6.18.01.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -69,6 +70,7 @@ Provides translations to the package tcsh
%prep
%setup
+%patch42 -p0
%patch1 -p0 -b .pipe
%patch2 -p0 -b .normcmd
### disabled for know, should work on os11.1 without