diff -ruN tkrat-2.1.4-old/configure.in tkrat-2.1.4/configure.in
--- tkrat-2.1.4-old/configure.in	2002-10-01 07:07:54.000000000 +0200
+++ tkrat-2.1.4/configure.in	2003-10-02 11:16:43.000000000 +0200
@@ -404,7 +404,7 @@
 	    SSLDIR=/usr
 	fi
 	EXTRA_LIBS="$EXTRA_LIBS -L$SSLDIR/lib -lssl -lcrypto"
-	IMAPFLAGS="SSLTYPE=unix SSLDIR=$SSLDIR"
+	IMAPFLAGS="SSLTYPE=nopwd SSLDIR=$SSLDIR"
 	AC_SUBST(SSLDIR)
 	AC_SUBST(IMAPFLAGS)
     else
diff -ruN tkrat-2.1.4-old/imap/Makefile tkrat-2.1.4/imap/Makefile
--- tkrat-2.1.4-old/imap/Makefile	2001-11-29 13:43:31.000000000 +0100
+++ tkrat-2.1.4/imap/Makefile	2003-10-02 11:00:39.000000000 +0200
@@ -118,7 +118,7 @@
 # The following extra authenticators are bundled:
 # gss	Kerberos V
 
-EXTRAAUTHENTICATORS=
+EXTRAAUTHENTICATORS=gss
 
 
 # Additional mailbox drivers.  Add linkage for xxxdriver.  Some drivers are
diff -ruN tkrat-2.1.4-old/imap/src/c-client/c-client.h tkrat-2.1.4/imap/src/c-client/c-client.h
--- tkrat-2.1.4-old/imap/src/c-client/c-client.h	2001-07-11 22:40:16.000000000 +0200
+++ tkrat-2.1.4/imap/src/c-client/c-client.h	2003-10-02 09:43:25.000000000 +0200
@@ -24,9 +24,6 @@
 #ifdef __cplusplus		/* help out people who use C++ compilers */
 extern "C" {
 #define private cclientPrivate	/* private to c-client */
-#define and cclientAnd		/* C99 doesn't realize that ISO 646 is dead */
-#define or cclientOr
-#define not cclientNot
 #endif
 
 #include "mail.h"		/* primary interfaces */
diff -ruN tkrat-2.1.4-old/imap/src/c-client/mail.c tkrat-2.1.4/imap/src/c-client/mail.c
--- tkrat-2.1.4-old/imap/src/c-client/mail.c	2002-04-11 13:08:49.000000000 +0200
+++ tkrat-2.1.4/imap/src/c-client/mail.c	2003-10-02 09:43:25.000000000 +0200
@@ -3108,10 +3108,10 @@
       (pgm->body && !mail_search_text (stream,msgno,section,pgm->body,NIL)))
     return NIL;
 				/* logical conditions */
-  for (or = pgm->or; or; or = or->next)
+  for (or = pgm->cclientOr; or; or = or->next)
     if (!(mail_search_msg (stream,msgno,section,or->first) ||
 	  mail_search_msg (stream,msgno,section,or->second))) return NIL;
-  for (not = pgm->not; not; not = not->next)
+  for (not = pgm->cclientNot; not; not = not->next)
     if (mail_search_msg (stream,msgno,section,not->pgm)) return NIL;
   return T;
 }
@@ -5296,8 +5296,8 @@
   if (*pgm) {			/* only free if exists */
     mail_free_searchset (&(*pgm)->msgno);
     mail_free_searchset (&(*pgm)->uid);
-    mail_free_searchor (&(*pgm)->or);
-    mail_free_searchpgmlist (&(*pgm)->not);
+    mail_free_searchor (&(*pgm)->cclientOr);
+    mail_free_searchpgmlist (&(*pgm)->cclientNot);
     mail_free_searchheader (&(*pgm)->header);
     mail_free_stringlist (&(*pgm)->bcc);
     mail_free_stringlist (&(*pgm)->body);
diff -ruN tkrat-2.1.4-old/imap/src/c-client/mail.h tkrat-2.1.4/imap/src/c-client/mail.h
--- tkrat-2.1.4-old/imap/src/c-client/mail.h	2001-11-29 13:43:31.000000000 +0100
+++ tkrat-2.1.4/imap/src/c-client/mail.h	2003-10-02 09:43:25.000000000 +0200
@@ -773,11 +773,19 @@
   SEARCHPGMLIST *next;		/* next in list */
 };
 
+/* Backwards compatability for C programs */
+#ifdef __STDC__
+  #ifndef __cplusplus
+    #define cclientOr or
+    #define cclientNot not
+  #endif
+#endif   
+
 SEARCHPGM {			/* search program */
   SEARCHSET *msgno;		/* message numbers */
   SEARCHSET *uid;		/* unique identifiers */
-  SEARCHOR *or;			/* or'ed in programs */
-  SEARCHPGMLIST *not;		/* and'ed not program */
+  SEARCHOR *cclientOr;		/* or'ed in programs */
+  SEARCHPGMLIST *cclientNot;	/* and'ed not program */
   SEARCHHEADER *header;		/* list of headers */
   STRINGLIST *bcc;		/* bcc recipients */
   STRINGLIST *body;		/* text in message body */
diff -ruN tkrat-2.1.4-old/imap/src/c-client/nntp.c tkrat-2.1.4/imap/src/c-client/nntp.c
--- tkrat-2.1.4-old/imap/src/c-client/nntp.c	2001-11-29 13:38:49.000000000 +0100
+++ tkrat-2.1.4/imap/src/c-client/nntp.c	2003-10-02 09:43:25.000000000 +0200
@@ -1084,10 +1084,10 @@
       return NIL;
   }
 				/* logical conditions */
-  for (or = pgm->or; or; or = or->next)
+  for (or = pgm->cclientOr; or; or = or->next)
     if (!(nntp_search_msg (stream,msgno,or->first,ov) ||
 	  nntp_search_msg (stream,msgno,or->second,ov))) return NIL;
-  for (not = pgm->not; not; not = not->next)
+  for (not = pgm->cclientNot; not; not = not->next)
     if (nntp_search_msg (stream,msgno,not->pgm,ov)) return NIL;
   return T;
 }
diff -ruN tkrat-2.1.4-old/imap/src/c-client/utf8.c tkrat-2.1.4/imap/src/c-client/utf8.c
--- tkrat-2.1.4-old/imap/src/c-client/utf8.c	2001-07-11 22:40:16.000000000 +0200
+++ tkrat-2.1.4/imap/src/c-client/utf8.c	2003-10-02 09:43:25.000000000 +0200
@@ -868,11 +868,11 @@
     }
     utf8_stringlist (pgm->body,charset);
     utf8_stringlist (pgm->text,charset);
-    for (ol = pgm->or; ol; ol = ol->next) {
+    for (ol = pgm->cclientOr; ol; ol = ol->next) {
       utf8_searchpgm (ol->first,charset);
       utf8_searchpgm (ol->second,charset);
     }
-    for (pl = pgm->not; pl; pl = pl->next) utf8_searchpgm (pl->pgm,charset);
+    for (pl = pgm->cclientNot; pl; pl = pl->next) utf8_searchpgm (pl->pgm,charset);
   }
 }
 
diff -ruN tkrat-2.1.4-old/imap/src/imapd/imapd.c tkrat-2.1.4/imap/src/imapd/imapd.c
--- tkrat-2.1.4-old/imap/src/imapd/imapd.c	2001-11-29 13:38:51.000000000 +0100
+++ tkrat-2.1.4/imap/src/imapd/imapd.c	2003-10-02 09:43:25.000000000 +0200
@@ -1783,9 +1783,9 @@
     case '5': case '6': case '7': case '8': case '9':
       if (*(set = &pgm->msgno)){/* already a sequence? */
 				/* silly, but not as silly as the client! */
-	for (not = &pgm->not; *not; not = &(*not)->next);
+	for (not = &pgm->cclientNot; *not; not = &(*not)->next);
 	*not = mail_newsearchpgmlist ();
-	set = &((*not)->pgm->not = mail_newsearchpgmlist ())->pgm->msgno;
+	set = &((*not)->pgm->cclientNot = mail_newsearchpgmlist ())->pgm->msgno;
       }
       ret = crit_set (set,&s,maxmsg) && (tail == s);
       break;
@@ -1837,7 +1837,7 @@
     case 'N':			/* possible NEW, NOT */
       if (!strcmp (s+1,"EW")) ret = pgm->recent = pgm->unseen = T;
       else if (!strcmp (s+1,"OT") && c == ' ' && *++tail) {
-	for (not = &pgm->not; *not; not = &(*not)->next);
+	for (not = &pgm->cclientNot; *not; not = &(*not)->next);
 	*not = mail_newsearchpgmlist ();
 	ret = parse_criterion ((*not)->pgm,&tail,maxmsg,depth+1);
       }
@@ -1848,7 +1848,7 @@
       else if (!strcmp (s+1,"N") && c == ' ' && *++tail)
 	ret = crit_date (&pgm->on,&tail);
       else if (!strcmp (s+1,"R") && c == ' ') {
-	for (or = &pgm->or; *or; or = &(*or)->next);
+	for (or = &pgm->cclientOr; *or; or = &(*or)->next);
 	*or = mail_newsearchor ();
 	ret = *++tail && parse_criterion((*or)->first,&tail,maxmsg,depth+1) &&
 	  *tail == ' ' && *++tail &&
@@ -1884,9 +1884,9 @@
       if (!strcmp (s+1,"ID") && c== ' ' && *++tail) {
 	if (*(set = &pgm->uid)){/* already a sequence? */
 				/* silly, but not as silly as the client! */
-	  for (not = &pgm->not; *not; not = &(*not)->next);
+	  for (not = &pgm->cclientNot; *not; not = &(*not)->next);
 	  *not = mail_newsearchpgmlist ();
-	  set = &((*not)->pgm->not = mail_newsearchpgmlist ())->pgm->uid;
+	  set = &((*not)->pgm->cclientNot = mail_newsearchpgmlist ())->pgm->uid;
 	}
 	ret = crit_set (set,&tail,0xffffffff);
       }
diff -ruN tkrat-2.1.4-old/imap/src/osdep/unix/env_unix.c tkrat-2.1.4/imap/src/osdep/unix/env_unix.c
--- tkrat-2.1.4-old/imap/src/osdep/unix/env_unix.c	2001-11-29 13:38:53.000000000 +0100
+++ tkrat-2.1.4/imap/src/osdep/unix/env_unix.c	2003-10-02 09:49:21.000000000 +0200
@@ -58,6 +58,8 @@
 				 * filesystems (AFS and old NFS).  Don't do
 				 * this unless you really have to!
 				 */
+ 				/* only advertise own mailboxes and #shared */
+static short limitedadvertise = NIL;
 				/* allow user config files */
 static short allowuserconfig = NIL;
 				/* 1 = disable plaintext, 2 = if not SSL */
@@ -110,6 +112,8 @@
 static NAMESPACE nsshared = {"#shared/",'/',NIL,&nsftp};
 				/* world namespace */
 static NAMESPACE nsworld = {"/",'/',NIL,&nsshared};
+				/* ONLY shared (no anonymous) namespace */
+static NAMESPACE nsonlyshared = {"#shared/",'/',NIL,NIL};
 
 #include "write.c"		/* include safe writing routines */
 #include "crexcl.c"		/* include exclusive create */
@@ -663,8 +667,12 @@
 	}
       }
       nslist[0] = &nshome;	/* home namespace */
-      nslist[1] = blackBox ? &nsblackother : &nsunixother;
-      nslist[2] = (advertisetheworld && !blackBox) ? &nsworld : &nsshared;
+      nslist[1] = limitedadvertise ?
+		  NIL: (blackBox ? &nsblackother : &nsunixother);
+      if (!limitedadvertise)
+        nslist[2] = (advertisetheworld && !blackBox) ? &nsworld : &nsshared;
+      else
+	nslist[2] = &nsonlyshared;
     }
     else {			/* anonymous user */
       nslist[0] = nslist[1] = NIL,nslist[2] = &nsftp;
@@ -1474,6 +1482,8 @@
 	    closedBox = atoi (k);
 	  else if (!compare_cstring (s,"set advertise-the-world"))
 	    advertisetheworld = atoi (k);
+	  else if (!compare_cstring (s,"set limited-advertise"))
+	    limitedadvertise = atoi (k);
 	  else if (!compare_cstring
 		   (s,"set disable-automatic-shared-namespaces"))
 	    noautomaticsharedns = atoi (k);
diff -ruN tkrat-2.1.4-old/imap/src/osdep/unix/Makefile tkrat-2.1.4/imap/src/osdep/unix/Makefile
--- tkrat-2.1.4-old/imap/src/osdep/unix/Makefile	2001-11-29 13:43:32.000000000 +0100
+++ tkrat-2.1.4/imap/src/osdep/unix/Makefile	2003-10-02 11:59:02.000000000 +0200
@@ -28,10 +28,11 @@
 
 # Extended flags needed for SSL.  You may need to modify.
 
-SSLDIR=/usr/local/ssl
-SSLCERTS=$(SSLDIR)/certs
-SSLINCLUDE=$(SSLDIR)/include
-SSLLIB=$(SSLDIR)/lib
+SSLDIR=/usr/lib/ssl
+SSLCERTS=/etc/ssl/certs
+SSLKEYS=/etc/ssl/private
+SSLINCLUDE=/usr/include/openssl
+SSLLIB=/usr/lib
 
 SSLCRYPTO=-lcrypto
 
@@ -45,7 +46,7 @@
 SSLRSA= # -lRSAglue -lrsaref
 
 SSLCFLAGS= -I$(SSLINCLUDE) -I$(SSLINCLUDE)/openssl\
- -DSSL_CERT_DIRECTORY=\"$(SSLCERTS)\"
+ -DSSL_CERT_DIRECTORY=\"$(SSLCERTS)\" -DSSL_KEY_DIRECTORY=\"$(SSLKEYS)\"
 SSLLDFLAGS= -L$(SSLLIB) -lssl $(SSLCRYPTO) $(SSLRSA)
 
 
@@ -73,8 +74,8 @@
 SPOOLDIR=/usr/spool
 MAILSPOOL=$(SPOOLDIR)/mail
 NEWSSPOOL=$(SPOOLDIR)/news
-RSHPATH=/usr/ucb/rsh
-LOCKPGM=/etc/mlock
+RSHPATH=/usr/bin/rsh
+LOCKPGM=/usr/bin/mlock
 
 
 # Default formats for creating new mailboxes and for empty mailboxes in the
@@ -150,7 +151,7 @@
 	 SPOOLDIR=/var/spool \
 	 RSHPATH=/usr/bin/rsh \
 	 BASECFLAGS="-g -Dunix=1 -D_BSD" \
-	 BASELDFLAGS="-lbsd"
+	 BASELDFLAGS="../c-client/c-client.a -lbsd"
 
 a41:	# AIX 4.1 for RS/6000
 	$(BUILD) `$(CAT) SPECIALS` OS=$@ \
@@ -158,7 +159,7 @@
 	 SPOOLDIR=/var/spool \
 	 RSHPATH=/usr/bin/rsh \
 	 BASECFLAGS="-g -Dunix=1 -D_BSD" \
-	 BASELDFLAGS="-ls"
+	 BASELDFLAGS="../c-client/c-client.a -ls"
 
 aix:	# AIX/370
 	@echo You are building for AIX on an S/370 class machine
@@ -166,11 +167,12 @@
 	$(BUILD) `$(CAT) SPECIALS` OS=$@ \
 	 CRXTYPE=nfs \
 	 BASECFLAGS="-g" \
-	 BASELDFLAGS="-lbsd"
+	 BASELDFLAGS="../c-client/c-client.a -lbsd"
 
 aos:	# AOS for RT
 	$(BUILD) `$(CAT) SPECIALS` OS=$@ \
 	 CRXTYPE=nfs \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 BASECFLAGS="-g -Dconst="
 
 art:	# AIX 2.2.1 for RT
@@ -180,6 +182,7 @@
 	 ACTIVEFILE=/usr/local/news/control/active \
 	 RSHPATH=/bin/rsh \
 	 BASECFLAGS="-g -Dconst= -Dvoid=char" \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 RANLIB=true 
 
 asv:	# Altos SVR4
@@ -188,7 +191,7 @@
 	 ACTIVEFILE=/usr/spool/news/active \
 	 RSHPATH=/usr/bin/rcmd \
 	 BASECFLAGS="-Dconst= -DSIGSTOP=SIGKILL" \
-	 BASELDFLAGS="-lsocket -lrpc -lgen -lcrypt -lxenix" \
+	 BASELDFLAGS="../c-client/c-client.a -lsocket -lrpc -lgen -lcrypt -lxenix" \
 	 RANLIB=true
 
 aux:	# A/UX
@@ -196,6 +199,7 @@
 	 CRXTYPE=nfs \
 	 MAILSPOOL=/usr/mail \
 	 BASECFLAGS="-g -B/usr/lib/big/ -Dvoid=char -Dconst=" \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 RANLIB=true ARRC="ar -rc"
 
 bs3:	# BSD/i386 3.0 or higher
@@ -204,11 +208,13 @@
 	 SPOOLDIR=/var NEWSSPOOL=/var/news/spool \
 	 ACTIVEFILE=/var/news/etc/active \
 	 RSHPATH=/usr/bin/rsh \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 BASECFLAGS="-g -O2 -pipe" CC=shlicc
 
 bsd:	# BSD UNIX
 	$(BUILD) `$(CAT) SPECIALS` OS=$@ \
 	 CRXTYPE=nfs \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 BASECFLAGS="-g -Dconst="
 
 bsf:	# FreeBSD
@@ -218,7 +224,7 @@
 	 ACTIVEFILE=/usr/local/news/lib/active \
 	 RSHPATH=/usr/bin/rsh \
 	 BASECFLAGS="-g -O -pipe" \
-	 BASELDFLAGS="-lcrypt"
+	 BASELDFLAGS="../c-client/c-client.a -lcrypt"
 
 bsi:	# BSD/i386
 	$(BUILD) `$(CAT) SPECIALS` OS=$@ \
@@ -226,6 +232,7 @@
 	 SPOOLDIR=/var NEWSSPOOL=/var/news/spool \
 	 ACTIVEFILE=/var/news/etc/active \
 	 RSHPATH=/usr/bin/rsh \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 BASECFLAGS="-g -O2 -pipe"
 
 bso:	# OpenBSD
@@ -234,11 +241,13 @@
 	 SPOOLDIR=/var \
 	 ACTIVEFILE=/usr/local/news/lib/active \
 	 RSHPATH=/usr/bin/rsh \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 BASECFLAGS="-O2 -pipe"
 
 cvx:	# Convex
 	$(BUILD) `$(CAT) SPECIALS` OS=$@ \
 	 CRXTYPE=nfs \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 BASECFLAGS="-O -ext -Dconst="
 
 cyg:	# Cygwin
@@ -248,7 +257,7 @@
 	ACTIVEFILE=/usr/local/news/lib/active \
 	RSHPATH=/usr/bin/rsh \
 	BASECFLAGS="-g -O" \
-	BASELDFLAGS="-lcrypt" \
+	BASELDFLAGS="../c-client/c-client.a -lcrypt" \
 	CC=gcc
 
 d-g:	# Data General DG/UX
@@ -258,7 +267,7 @@
 	 ACTIVEFILE=/local/news/active \
 	 RSHPATH=/usr/bin/remsh \
 	 BASECFLAGS="-g -Dconst=" \
-	 BASELDFLAGS="-lnsl -lsocket" \
+	 BASELDFLAGS="../c-client/c-client.a -lnsl -lsocket" \
 	 RANLIB=true
 
 d54:	# Data General DG/UX 5.4
@@ -268,7 +277,7 @@
 	 ACTIVEFILE=/local/news/active \
 	 RSHPATH=/usr/bin/remsh \
 	 BASECFLAGS="-g -Dconst=" \
-	 BASELDFLAGS="-lnsl -lsocket" \
+	 BASELDFLAGS="../c-client/c-client.a -lnsl -lsocket" \
 	 RANLIB=true
 
 dpx:	# Bull DPX/2
@@ -276,7 +285,7 @@
 	 SIGTYPE=sv4 CHECKPW=sv4 LOGINPW=sv4 \
 	 RSHPATH=/usr/bin/remsh \
 	 BASECFLAGS="-Dconst= -DSYSTEM5 -DSHORT_IDENT" \
-	 BASELDFLAGS="-linet" \
+	 BASELDFLAGS="../c-client/c-client.a -linet" \
 	 RANLIB=true LN=ln
 
 drs:	# ICL DRS/NX
@@ -286,18 +295,20 @@
 	 ACTIVEFILE=/var/lib/news/active \
 	 RSHPATH=/usr/bin/rsh \
 	 BASECFLAGS="-O" \
-	 BASELDFLAGS="-lsocket -lgen" \
+	 BASELDFLAGS="../c-client/c-client.a -lsocket -lgen" \
 	 RANLIB=true
 
 do4:	# Apollo Domain/OS sr10.4
 	$(BUILD) `$(CAT) SPECIALS` OS=$@ \
 	 CRXTYPE=nfs \
 	 BASECFLAGS="-A systype,bsd4.3 -D_APOLLO_SOURCE" \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 RANLIB=true
 
 dyn:	# Dynix
 	$(BUILD) `$(CAT) SPECIALS` OS=$@ \
 	 CRXTYPE=nfs \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 BASECFLAGS="-g -Dconst="
 
 epx:	# EP/IX
@@ -307,7 +318,7 @@
 	 ACTIVEFILE=/usr/share/news/active \
 	 RSHPATH=/usr/net/rsh \
 	 BASECFLAGS="-g -systype svr4" \
-	 BASELDFLAGS="-lsocket -lnsl -lgen" \
+	 BASELDFLAGS="../c-client/c-client.a -lsocket -lnsl -lgen" \
 	 RANLIB=true
 
 gas:	# GCC Altos SVR4
@@ -316,7 +327,7 @@
 	 ACTIVEFILE=/usr/spool/news/active \
 	 RSHPATH=/usr/bin/rcmd \
 	 BASECFLAGS="-g -O -DALTOS_SYSTEM_V -DSIGSTOP=SIGKILL" \
-	 BASELDFLAGS="-lsocket -lrpc -lgen -lcrypt -lxenix" \
+	 BASELDFLAGS="../c-client/c-client.a -lsocket -lrpc -lgen -lcrypt -lxenix" \
 	 RANLIB=true CC=gcc
 
 gh9:	# GCC HP-UX 9.x
@@ -325,6 +336,7 @@
 	 MAILSPOOL=/usr/mail \
 	 RSHPATH=/usr/bin/remsh \
 	 BASECFLAGS="-g -O2" \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 RANLIB=true CC=gcc
 
 ghp:	# GCC HP-UX 10.x
@@ -334,6 +346,7 @@
 	 ACTIVEFILE=/var/news/active \
 	 RSHPATH=/usr/bin/remsh \
 	 BASECFLAGS="-g -O2" \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 RANLIB=true CC=gcc
 
 ghs:	# GCC HP-UX with Trusted Computer Base
@@ -343,7 +356,7 @@
 	 ACTIVEFILE=/var/news/active \
 	 RSHPATH=/usr/bin/remsh \
 	 BASECFLAGS="-g -O2" \
-	 BASELDFLAGS="-lnet -lV3 -lsec" \
+	 BASELDFLAGS="../c-client/c-client.a -lnet -lV3 -lsec" \
 	 RANLIB=true CC=gcc
 
 go5:	# GCC 2.7.1 (95q4) SCO Open Server 5.0.x
@@ -354,7 +367,7 @@
 	 ACTIVEFILE=/var/lib/news/active \
 	 RSHPATH=/usr/bin/rcmd \
 	 BASECFLAGS="-O3 -I/usr/include -L/lib" \
-	 BASELDFLAGS="-lsocket -lprot -lx -ltinfo -lm" \
+	 BASELDFLAGS="../c-client/c-client.a -lsocket -lprot -lx -ltinfo -lm" \
 	 RANLIB=true CC=gcc
 
 gsc:	# Santa Cruz Operation
@@ -363,7 +376,7 @@
 	 CREATEPROTO=mmdfproto EMPTYPROTO=mmdfproto \
 	 RSHPATH=/usr/bin/rcmd \
 	 BASECFLAGS="-O3" \
-	 BASELDFLAGS="-lsocket -lprot -lcrypt_i -lx -los" \
+	 BASELDFLAGS="../c-client/c-client.a -lsocket -lprot -lcrypt_i -lx -los" \
 	 RANLIB=true LN=ln CC=gcc
 
 gsg:	# GCC Silicon Graphics
@@ -372,6 +385,7 @@
 	 MAILSPOOL=/usr/mail \
 	 RSHPATH=/usr/bsd/rsh \
 	 BASECFLAGS="-g -O2" \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 RANLIB=true CC=gcc
 
 gso:	# GCC Solaris
@@ -381,21 +395,21 @@
 	 ACTIVEFILE=/usr/share/news/active \
 	 RSHPATH=/usr/bin/rsh \
 	 BASECFLAGS="-g -O2" \
-	 BASELDFLAGS="-lsocket -lnsl -lgen" \
+	 BASELDFLAGS="../c-client/c-client.a -lsocket -lnsl -lgen" \
 	 RANLIB=true CC=gcc
 
 gsu:	# GCC SUN-OS
 	$(BUILD) `$(CAT) SPECIALS` OS=sun \
 	 CRXTYPE=nfs \
 	 BASECFLAGS="-g -O2" \
-	 BASELDFLAGS="-ldl" \
+	 BASELDFLAGS="../c-client/c-client.a -ldl" \
 	 CC=gcc
 
 gul:	# GCC Ultrix
 	$(BUILD) `$(CAT) SPECIALS` OS=ult \
 	 SIGTYPE=psx CHECKPW=ult CRXTYPE=nfs \
 	 BASECFLAGS="-g -O" \
-	 BASELDFLAGS="-lauth -lc" \
+	 BASELDFLAGS="../c-client/c-client.a -lauth -lc" \
 	 CC=gcc
 
 hpp:	# HP-UX 9.x
@@ -404,7 +418,7 @@
 	 MAILSPOOL=/usr/mail \
 	 RSHPATH=/usr/bin/remsh \
 	 BASECFLAGS="-g -Aa -D_HPUX_SOURCE" \
-	 BASELDFLAGS="-lnet -lV3" \
+	 BASELDFLAGS="../c-client/c-client.a -lnet -lV3" \
 	 RANLIB=true
 
 hpx:	# HP-UX 10.x
@@ -414,7 +428,7 @@
 	 ACTIVEFILE=/var/news/active \
 	 RSHPATH=/usr/bin/remsh \
 	 BASECFLAGS="-g -Ae" \
-	 BASELDFLAGS="-lnet -lV3" \
+	 BASELDFLAGS="../c-client/c-client.a -lnet -lV3" \
 	 RANLIB=true
 
 isc:	# Interactive
@@ -423,17 +437,29 @@
 	 SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
 	 ACTIVEFILE=/var/spool/news/active \
 	 BASECFLAGS="-Xp -D_SYSV3" \
-	 BASELDFLAGS="-linet -lnsl_s -lgen -lx -lsec -liberty" \
+	 BASELDFLAGS="../c-client/c-client.a -linet -lnsl_s -lgen -lx -lsec -liberty" \
 	 RANLIB=true
 
 lnp:	# Linux Pluggable Authentication modules
 	$(BUILD) `$(CAT) SPECIALS` OS=lnx \
 	 SIGTYPE=psx CHECKPW=pam CRXTYPE=nfs \
-	 SPOOLDIR=/var/spool \
+	 SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
 	 ACTIVEFILE=/var/lib/news/active \
 	 RSHPATH=/usr/bin/rsh \
-	 BASECFLAGS="-g -fno-omit-frame-pointer -O6" \
-	 BASELDFLAGS="-lpam -ldl"
+	 BASECFLAGS="-g -fno-omit-frame-pointer -O2" \
+	 BASELDFLAGS="../c-client/c-client.a -lpam -ldl"
+
+lnps:	# Linux Pluggable Authentication modules (c-client as shared lib)
+	$(BUILD) `cat EXTRASPECIALS` OS=lnx \
+	 SIGTYPE=psx CHECKPW=pam CRXTYPE=nfs \
+	 SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
+	 ACTIVEFILE=/var/lib/news/active \
+	 RSHPATH=/usr/bin/rsh \
+	 BASECFLAGS="-fPIC -g -fno-omit-frame-pointer -O2 -DNFSKLUDGE" \
+	 ARCHIVE="libc-client.so" \
+	 BASELDFLAGS="-L../c-client -lc-client -lpam -ldl -lc" \
+	 ARRC="gcc --shared -Wl,-soname,libc-client.so.$(VERSION) -lpam -ldl -lc $(EXTRALDFLAGS) $(SSLLDFLAGS) -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -o" \
+	 RANLIB=true
 
 lnx:	# Linux non-shadow passwords
 	@echo You are building for traditional Linux *without* shadow
@@ -445,6 +471,7 @@
 	 SPOOLDIR=/var/spool \
 	 ACTIVEFILE=/var/lib/news/active \
 	 RSHPATH=/usr/bin/rsh \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 BASECFLAGS="-g -O"
 
 lyn:	# LynxOS
@@ -452,12 +479,13 @@
 	 CRXTYPE=nfs \
 	 RSHPATH=/bin/rsh \
 	 BASECFLAGS="-g -O -pipe" \
-	 BASELDFLAGS=-lbsd \
+	 BASELDFLAGS=../c-client/c-client.a -lbsd \
 	 CC=gcc
 
 mct:	# MachTen - CRXTYPE=nfs doesn't work (at least not on 2.2)
 	$(BUILD) `$(CAT) SPECIALS` OS=$@ \
 	 SPOOLDIR=/var/spool \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 BASECFLAGS="-g -O -pipe"
 
 mnt:	# Mint
@@ -466,6 +494,7 @@
 	 SPOOLDIR=/var/spool \
 	 ACTIVEFILE=/var/lib/news/active \
 	 RSHPATH=/usr/bin/rsh \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 BASECFLAGS="-g -O"
 
 neb:	# NetBSD
@@ -475,7 +504,7 @@
 	 ACTIVEFILE=/var/db/news/active \
 	 RSHPATH=/usr/bin/rsh \
 	 BASECFLAGS="-g -O -pipe" \
-	 BASELDFLAGS="-lcrypt"
+	 BASELDFLAGS="../c-client/c-client.a -lcrypt"
 
 nec:	# NEC UX
 	$(BUILD) `$(CAT) SPECIALS` OS=sv4 \
@@ -484,7 +513,7 @@
 	 ACTIVEFILE=/var/news/lib/active \
 	 RSHPATH=/usr/bin/rsh \
 	 BASECFLAGS="-g -Kopt=2 -KOlimit=2000" \
-	 BASELDFLAGS="-lsocket -lnsl -lgen" \
+	 BASELDFLAGS="../c-client/c-client.a -lsocket -lnsl -lgen" \
 	 RANLIB=true CC=/usr/abiccs/bin/cc
 
 nto:	# QNX Neutrino RTP
@@ -493,16 +522,19 @@
 	 SPOOLDIR=/var/spool \
 	 ACTIVEFILE=/var/lib/news/active \
 	 RSHPATH=/usr/bin/rsh \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 BASECFLAGS="-g -O"
 
 nxt:	# NEXTSTEP
 	$(BUILD) `$(CAT) SPECIALS` OS=$@ \
 	 CRXTYPE=nfs \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 BASECFLAGS="-g -O -pipe"
 
 nx3:	# NEXTSTEP 3.0 single threaded
 	$(BUILD) `$(CAT) SPECIALS` OS=nxt \
 	 CRXTYPE=nfs \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 BASECFLAGS="-g -O -pipe -Wall"
 	echo "void malloc_singlethreaded (void);" >> linkage.h
 	echo "  malloc_singlethreaded ();" >> linkage.c
@@ -511,6 +543,7 @@
 	$(BUILD) `$(CAT) SPECIALS` OS=$@ \
 	 SIGTYPE=psx CRXTYPE=nfs \
 	 SPOOLDIR=/var/spool \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 BASECFLAGS="-g3 -O2 -Olimit 1500"
 
 # Note: sia_become_user() used by LOGINPW=os4 doesn't seem to work right.  The
@@ -520,12 +553,14 @@
 	$(BUILD) `$(CAT) SPECIALS` OS=$@ \
 	 SIGTYPE=psx CHECKPW=os4 LOGINPW=os4 CRXTYPE=nfs \
 	 SPOOLDIR=/var/spool \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 BASECFLAGS="-g3 -std0 -O2"
 
 osx:	# Mac OS X
 	$(BUILD) `$(CAT) SPECIALS` OS=$@ \
 	 CRXTYPE=nfs \
 	 SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 BASECFLAGS="-g -O"
 
 ptx:	# PTX
@@ -534,12 +569,13 @@
 	 MAILSPOOL=/usr/mail \
 	 RSHPATH=/usr/bin/resh \
 	 BASECFLAGS="-Wc,-O3 -Wc,-seq -Dprivate=PRIVATE" \
-	 BASELDFLAGS="-lseq -lsec -lsocket -linet -lnsl -lgen" \
+	 BASELDFLAGS="../c-client/c-client.a -lseq -lsec -lsocket -linet -lnsl -lgen" \
 	 RANLIB=true
 
 pyr:	# Pyramid
 	$(BUILD) `$(CAT) SPECIALS` OS=$@ \
 	 CRXTYPE=nfs \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 BASECFLAGS="-g -Dconst="
 
 qnx:	# QNX
@@ -547,11 +583,12 @@
 	 CHECKPW=psx LOGINPW=old \
 	 RSHPATH=/usr/ucb/rsh \
 	 BASECFLAGS="-Otax -g -Dunix=1 -D_POSIX_SOURCE" \
-	 BASELDFLAGS="-g -N128k -llogin -lsocket -lunix"
+	 BASELDFLAGS="../c-client/c-client.a -g -N128k -llogin -lsocket -lunix"
 
 s40:	# SUN-OS 4.0
 	$(BUILD) `$(CAT) SPECIALS` OS=$@ \
 	 CRXTYPE=nfs \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 BASECFLAGS="-g -Dconst="
 
 sc5:	# SCO Open Server 5.0
@@ -562,7 +599,7 @@
 	 ACTIVEFILE=/var/lib/news/active \
 	 RSHPATH=/usr/bin/rcmd \
 	 BASECFLAGS="-O3 -s" \
-	 BASELDFLAGS="-lsocket -lprot -lx -ltinfo -lm" \
+	 BASELDFLAGS="../c-client/c-client.a -lsocket -lprot -lx -ltinfo -lm" \
 	 RANLIB=true
 
 sco:	# Santa Cruz Operation
@@ -571,7 +608,7 @@
 	 CREATEPROTO=mmdfproto EMPTYPROTO=mmdfproto \
 	 RSHPATH=/usr/bin/rcmd \
 	 BASECFLAGS="-O3" \
-	 BASELDFLAGS="-lsocket -lprot -lcrypt_i -lx -los" \
+	 BASELDFLAGS="../c-client/c-client.a -lsocket -lprot -lcrypt_i -lx -los" \
 	 RANLIB=true LN=ln
 
 # Note: setting _POSIX_SOURCE doesn't seem to build it as of SGI IRIX 5.3
@@ -581,6 +618,7 @@
 	 SIGTYPE=sv4 CRXTYPE=nfs \
 	 MAILSPOOL=/usr/mail \
 	 RSHPATH=/usr/bsd/rsh \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 BASECFLAGS="-g3 -O2 -Olimit 8192" \
 	 RANLIB=true
 
@@ -590,6 +628,7 @@
 	 MAILSPOOL=/usr/mail \
 	 RSHPATH=/usr/bsd/rsh \
 	 BASECFLAGS="-g3 -O2 -OPT:Olimit=0 -woff 1110,1116" \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 RANLIB=true
 
 # Note: Mark Kaesling says that setluid() isn't in HP-UX with SecureWare.
@@ -601,7 +640,7 @@
 	 ACTIVEFILE=/var/news/active \
 	 RSHPATH=/usr/bin/remsh \
 	 BASECFLAGS="-g -Ae" \
-	 BASELDFLAGS="-lnet -lV3 -lsec" \
+	 BASELDFLAGS="../c-client/c-client.a -lnet -lV3 -lsec" \
 	 RANLIB=true
 
 slx:	# Secure Linux
@@ -614,7 +653,7 @@
 	 ACTIVEFILE=/var/lib/news/active \
 	 RSHPATH=/usr/bin/rsh \
 	 BASECFLAGS="-g -fno-omit-frame-pointer -O6" \
-	 BASELDFLAGS="-lcrypt"
+	 BASELDFLAGS="../c-client/c-client.a -lcrypt"
 
 sl4:	# Secure Linux using libc4
 	@echo You are building for libc4 versions of Secure Linux
@@ -626,7 +665,7 @@
 	 ACTIVEFILE=/var/lib/news/active \
 	 RSHPATH=/usr/bin/rsh \
 	 BASECFLAGS="-g -fno-omit-frame-pointer -O6" \
-	 BASELDFLAGS="-lshadow"
+	 BASELDFLAGS="../c-client/c-client.a -lshadow"
 
 sl5:	# Secure Linux using libc5
 	@echo You are building for libc5 versions of Secure Linux
@@ -637,6 +676,7 @@
 	 SPOOLDIR=/var/spool \
 	 ACTIVEFILE=/var/lib/news/active \
 	 RSHPATH=/usr/bin/rsh \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 BASECFLAGS="-g -fno-omit-frame-pointer -O6"
 
 snx:	# Siemens Nixdorf SINIX and Reliant UNIX
@@ -646,7 +686,7 @@
 	 ACTIVEFILE=/usr/share/news/active \
 	 RSHPATH=/usr/bin/rsh \
 	 BASECFLAGS="-g -D_SYS_CLOCK_H -Dconst=" \
-	 BASELDFLAGS="-lsocket -lnsl -lgen" \
+	 BASELDFLAGS="../c-client/c-client.a -lsocket -lnsl -lgen" \
 	 RANLIB=true
 
 # Note: It is a long and disgusting story about why cc is set to ucbcc.  You
@@ -691,26 +731,26 @@
 	 ACTIVEFILE=/usr/share/news/active \
 	 RSHPATH=/usr/bin/rsh \
 	 BASECFLAGS="-g -O2" \
-	 BASELDFLAGS="-lsocket -lnsl -lgen" \
+	 BASELDFLAGS="../c-client/c-client.a -lsocket -lnsl -lgen" \
 	 RANLIB=true CC=ucbcc
 
 sos:	# Secure OSF/1
 	$(BUILD) `$(CAT) SPECIALS` OS=$@ \
 	 SIGTYPE=psx CHECKPW=sec LOGINPW=sec CRXTYPE=nfs \
 	 BASECFLAGS="-g3 -O2 -Olimit 1500" \
-	 BASELDFLAGS="-lsecurity -laud"
+	 BASELDFLAGS="../c-client/c-client.a -lsecurity -laud"
 
 ssn:	# Secure SUN-OS
 	$(BUILD) `$(CAT) SPECIALS` OS=sun \
 	 CHECKPW=ssn CRXTYPE=nfs \
 	 BASECFLAGS="-g -Dconst=" \
-	 BASELDFLAGS="-ldl"
+	 BASELDFLAGS="../c-client/c-client.a -ldl"
 
 sun:	# SUN-OS
 	$(BUILD) `$(CAT) SPECIALS` OS=$@ \
 	 CRXTYPE=nfs \
 	 BASECFLAGS="-g -Dconst=" \
-	 BASELDFLAGS="-ldl"
+	 BASELDFLAGS="../c-client/c-client.a -ldl"
 
 sv2:	# SVR2
 	@echo You are being *very* optimistic!
@@ -719,7 +759,7 @@
 	 MAILSPOOL=/usr/mail \
 	 RSHPATH=/usr/bin/remsh \
 	 BASECFLAGS="-Dconst= -DSYSTEM5 -DSHORT_IDENT -I/usr/ethernet/include" \
-	 BASELDFLAGS="-lnet" \
+	 BASELDFLAGS="../c-client/c-client.a -lnet" \
 	 RANLIB=true LN=ln
 
 sv4:	# SVR4
@@ -729,14 +769,14 @@
 	 ACTIVEFILE=/usr/share/news/active \
 	 RSHPATH=/usr/bin/resh \
 	 BASECFLAGS="-g -Dconst=" \
-	 BASELDFLAGS="-lsocket -lnsl -lgen" \
+	 BASELDFLAGS="../c-client/c-client.a -lsocket -lnsl -lgen" \
 	 RANLIB=true
 
 ult:	# Ultrix
 	$(BUILD) `$(CAT) SPECIALS` OS=$@ \
 	 SIGTYPE=psx CHECKPW=ult CRXTYPE=nfs \
 	 BASECFLAGS="-g3 -O2 -Olimit 1500 -Dconst=" \
-	 BASELDFLAGS="-lauth -lc"
+	 BASELDFLAGS="../c-client/c-client.a -lauth -lc"
 
 uw2:	# UnixWare SVR4.2
 	$(BUILD) `$(CAT) SPECIALS` OS=sv4 \
@@ -745,18 +785,19 @@
 	 ACTIVEFILE=/var/news/lib/active \
 	 RSHPATH=/usr/bin/rsh \
 	 BASECFLAGS="-g" \
-	 BASELDFLAGS="-lsocket -lnsl -lgen" \
+	 BASELDFLAGS="../c-client/c-client.a -lsocket -lnsl -lgen" \
 	 RANLIB=true
 
 vul:	# VAX Ultrix
 	$(BUILD) `$(CAT) SPECIALS` OS=ult \
 	 SIGTYPE=psx CHECKPW=ult CRXTYPE=nfs \
 	 BASECFLAGS="-O2 -Dconst=" \
-	 BASELDFLAGS="-lauth -lc"
+	 BASELDFLAGS="../c-client/c-client.a -lauth -lc"
 
 vu2:	# VAX Ultrix 2.3, etc.
 	$(BUILD) `$(CAT) SPECIALS` OS=$@ \
 	 CRXTYPE=nfs \
+	 BASELDFLAGS="../c-client/c-client.a" \
 	 BASECFLAGS="-O2 -Dconst= -Dvoid=char"
 
 
@@ -778,7 +819,7 @@
 # Cleanup
 
 clean:
-	sh -c '$(RM) auths.c crexcl.c nfstest.c linkage.[ch] siglocal.c osdep*.[ch] *.o ARCHIVE *FLAGS *TYPE $(ARCHIVE) || true'
+	sh -c '$(RM) auths.c crexcl.c nfstest.c linkage.[ch] siglocal.c osdep*.[ch] *.o ARCHIVE ARCHIVENAME *FLAGS *TYPE $(ARCHIVE) || true'
 
 
 # Dependencies
@@ -872,6 +913,7 @@
 	 -DRSHPATH=\"$(RSHPATH)\" -DLOCKPGM=\"$(LOCKPGM)\" > OSCFLAGS
 	echo $(BASELDFLAGS) $(EXTRALDFLAGS) > LDFLAGS
 	echo "$(ARRC) $(ARCHIVE) $(BINARIES);$(RANLIB) $(ARCHIVE)" > ARCHIVE
+	echo $(ARCHIVE) > ARCHIVENAME
 	./drivers $(EXTRADRIVERS) $(DEFAULTDRIVERS) dummy
 	./mkauths $(EXTRAAUTHENTICATORS) $(DEFAULTAUTHENTICATORS)
 	$(LN) os_$(OS).h osdep.h
@@ -953,6 +995,8 @@
 snopwd:	# Plaintext disable
 	@echo Building with SSL and plaintext passwords disabled unless SSL/TLS
 	echo "  mail_parameters (NIL,SET_DISABLEPLAINTEXT,(void *) 2);" >> linkage.c
+	sed -e "s,^.*md5.*,/* auth_md5 disabled */," linkage.c > linkage.tmp
+	mv linkage.tmp linkage.c
 
 sldunix:# Normal UNIX SSL load flags
 	echo $(SSLLDFLAGS) >> LDFLAGS
diff -ruN tkrat-2.1.4-old/imap/src/osdep/unix/os_lnx.h tkrat-2.1.4/imap/src/osdep/unix/os_lnx.h
--- tkrat-2.1.4-old/imap/src/osdep/unix/os_lnx.h	2001-04-16 14:31:31.000000000 +0200
+++ tkrat-2.1.4/imap/src/osdep/unix/os_lnx.h	2003-10-02 09:42:11.000000000 +0200
@@ -18,6 +18,8 @@
  * CPYRIGHT, included with this Distribution.
  */
 
+#define _XOPEN_SOURCE 1
+#define _BSD_SOURCE 1
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
diff -ruN tkrat-2.1.4-old/imap/src/osdep/unix/ssl_unix.c tkrat-2.1.4/imap/src/osdep/unix/ssl_unix.c
--- tkrat-2.1.4-old/imap/src/osdep/unix/ssl_unix.c	2001-11-29 13:38:57.000000000 +0100
+++ tkrat-2.1.4/imap/src/osdep/unix/ssl_unix.c	2003-10-02 09:30:47.000000000 +0200
@@ -566,7 +566,8 @@
 
 void ssl_server_init (char *server)
 {
-  char tmp[MAILTMPLEN];
+  char tmpcrt[MAILTMPLEN];
+  char tmpkey[MAILTMPLEN];
   unsigned long i;
   struct stat sbuf;
   struct sockaddr_in sin;
@@ -576,14 +577,19 @@
   ssl_onceonlyinit ();		/* make sure algorithms added */
   ERR_load_crypto_strings ();
   SSL_load_error_strings ();
-  tmp[0] = '\0';		/* build specific certificate/key file name */
+  tmpcrt[0] = tmpkey[0] = '\0';		/* build specific certificate/key file name */
   if (!getsockname (0,(struct sockaddr *) &sin,(void *) &sinlen) &&
-      (sin.sin_family == AF_INET))
-    sprintf (tmp,"%s/%s-%s.pem",SSL_CERT_DIRECTORY,server,
+      (sin.sin_family == AF_INET)){
+    sprintf (tmpcrt,"%s/%s-%s.pem",SSL_CERT_DIRECTORY,server,
 	     inet_ntoa (sin.sin_addr));
-				/* use non-specific name if no specific file */
-  if (!tmp[0] || stat (tmp,&sbuf))
-    sprintf (tmp,"%s/%s.pem",SSL_CERT_DIRECTORY,server);
+    sprintf (tmpkey,"%s/%s-%s.pem",SSL_KEY_DIRECTORY,server,
+	     inet_ntoa (sin.sin_addr));
+  }
+  				/* use non-specific name if no specific file */
+  if (!tmpcrt[0] || stat (tmpcrt,&sbuf))
+    sprintf (tmpcrt,"%s/%s.pem",SSL_CERT_DIRECTORY,server);
+  if (!tmpkey[0] || stat (tmpkey,&sbuf))
+    sprintf (tmpcrt,"%s/%s.pem",SSL_KEY_DIRECTORY,server);
 				/* create context */
   if (!(stream->context = SSL_CTX_new (start_tls ?
 				       TLSv1_server_method () :
@@ -597,14 +603,14 @@
       syslog (LOG_ALERT,"Unable to set cipher list %.80s, host=%.80s",
 	      SSLCIPHERLIST,tcp_clienthost ());
 				/* load certificate */
-    else if (!SSL_CTX_use_certificate_chain_file (stream->context,tmp))
+    else if (!SSL_CTX_use_certificate_chain_file (stream->context,tmpcrt))
       syslog (LOG_ALERT,"Unable to load certificate from %.80s, host=%.80s",
-	      tmp,tcp_clienthost ());
+	      tmpcrt,tcp_clienthost ());
 				/* load key */
-    else if (!(SSL_CTX_use_RSAPrivateKey_file (stream->context,tmp,
+    else if (!(SSL_CTX_use_RSAPrivateKey_file (stream->context,tmpkey,
 					       SSL_FILETYPE_PEM)))
       syslog (LOG_ALERT,"Unable to load private key from %.80s, host=%.80s",
-	      tmp,tcp_clienthost ());
+	      tmpkey,tcp_clienthost ());
 
     else {			/* generate key if needed */
       if (SSL_CTX_need_tmp_RSA (stream->context))
diff -ruN tkrat-2.1.4-old/imap/src/osdep/unix/tcp_unix.c tkrat-2.1.4/imap/src/osdep/unix/tcp_unix.c
--- tkrat-2.1.4-old/imap/src/osdep/unix/tcp_unix.c	2001-11-29 13:43:32.000000000 +0100
+++ tkrat-2.1.4/imap/src/osdep/unix/tcp_unix.c	2003-10-02 09:47:54.000000000 +0200
@@ -334,12 +334,12 @@
 				/* return immediately if ssh disabled */
     if (!(sshpath && (ti = sshtimeout))) return NIL;
 				/* ssh command prototype defined yet? */
-    if (!sshcommand) sshcommand = cpystr ("%s %s -l %s exec /etc/r%sd");
+    if (!sshcommand) sshcommand = cpystr ("%s %s -l %s exec /usr/sbin/r%sd");
   }
   else if (ti = rshtimeout) {	/* set rsh timeout */
 				/* rsh path/command prototypes defined yet? */
     if (!rshpath) rshpath = cpystr (RSHPATH);
-    if (!rshcommand) rshcommand = cpystr ("%s %s -l %s exec /etc/r%sd");
+    if (!rshcommand) rshcommand = cpystr ("%s %s -l %s exec /usr/sbin/r%sd");
   }
   else return NIL;		/* rsh disabled */
 				/* look like domain literal? */
diff -ruN tkrat-2.1.4-old/lib/Makefile.in tkrat-2.1.4/lib/Makefile.in
--- tkrat-2.1.4-old/lib/Makefile.in	2003-09-23 20:13:37.000000000 +0200
+++ tkrat-2.1.4/lib/Makefile.in	2003-10-02 11:05:14.000000000 +0200
@@ -66,7 +66,7 @@
 
 CFLAGS = ${TK_DEFS} ${EXTRA_CFLAGS} -I${C_CLIENT} ${FIX_INCLUDE} ${INCLUDES} \
 	 ${SHLIB_CFLAGS} -DVERSION=\"${VERSION}\"
-C_CLIENT_LIB = ${C_CLIENT}/c-client.a
+C_CLIENT_LIB = ${C_CLIENT}/c-client.a /usr/lib/libgssapi_krb5.so
 RATLIB = ratatosk${RATLIB_SUFFIX}
 DUMMYLIB = ratDummy${SHLIB_SUFFIX}
 
