--- jnos110m/ax25cmd.c	Sat Jan  6 05:41:56 1996
+++ 110m-new/ax25cmd.c	Sat Jan 20 20:34:18 1996
@@ -1123,7 +1123,7 @@
     fsocket.sax_family = AF_AX25;
     setcall(fsocket.ax25_addr,argv[2]);
     strncpy(fsocket.iface,argv[1],ILEN);
-    return tel_connect(sp, (char *)&fsocket, sizeof(struct sockaddr_ax));
+    return tel_connect(sp, (char *)&fsocket, sizeof(struct sockaddr_ax),0);
 }
 #endif
   
--- jnos110m/bpqcmd.c	Sun Apr 17 15:13:00 1994
+++ 110m-new/bpqcmd.c	Sat Jan 20 20:34:41 1996
@@ -256,7 +256,7 @@
     memcpy(fsocket.bpq_addr,"SWITCH   \0",AXBUF);
     sp->network = fdopen(s,"r+t");
     setvbuf(sp->network,NULLCHAR,_IOLBF,BUFSIZ);
-    return tel_connect(sp, (char *)&fsocket, sizeof(struct sockaddr_bq));
+    return tel_connect(sp, (char *)&fsocket, sizeof(struct sockaddr_bq),0);
 }
   
 static int
--- jnos110m/config.c	Sat Jan  6 05:41:56 1996
+++ 110m-new/config.c	Sat Jan 20 20:18:38 1996
@@ -461,6 +461,12 @@
 #endif
 #ifdef LZW
     "lzw",      dolzw,      0, 2, "lzw <mode|bits|trace>",
+#ifdef TTYLINKSESSION
+    "lzwlink",  dotelnet,  1024, 2, "lzwlink <address> [port]",
+#endif
+#ifdef TELNETSESSION
+    "lzwnet",  dotelnet,  1024, 2, "lzwnet <address> [port]",
+#endif
 #endif
 #ifdef ALLCMD
     "mail",     dobmail,    0, 0, NULLCHAR,
--- jnos110m/convers.c	Sat Jan  6 05:41:56 1996
+++ 110m-new/convers.c	Fri Jan 19 23:00:07 1996
@@ -84,16 +84,16 @@
 int ConvHosts;
 
 #ifdef CNV_VERBOSE
-static char cnumber[] = "*** Channel numbers must be in the range 0..%d.\n";
+static char DFAR cnumber[] = "*** Channel numbers must be in the range 0..%d.\n";
 #ifdef CNV_LOCAL_CHANS
-static char clocal[]  = "*** This is a local channel - no chatting with other nodes\n";
-static char cmessage[]= "*** This is a message channel - only /msg allowed or received\n";
+static char DFAR clocal[]  = "*** This is a local channel - no chatting with other nodes\n";
+static char DFAR cmessage[]= "*** This is a message channel - only /msg allowed or received\n";
 #endif
 #else
-static char cnumber[] = "* range 0..%d.\n";
+static char DFAR cnumber[] = "* range 0..%d.\n";
 #ifdef CNV_LOCAL_CHANS
-static char clocal[]  = "* LOCAL CHANNEL\n";
-static char cmessage[]= "* MESSAGE CHANNEL\n";
+static char DFAR clocal[]  = "* LOCAL CHANNEL\n";
+static char DFAR cmessage[]= "* MESSAGE CHANNEL\n";
 #endif
 #endif
 
@@ -2380,7 +2380,7 @@
 
     sockowner(s,Curproc);	/* We own it now */
     sockmode(s,SOCK_BINARY);
-    sockblock(s,SOCK_NOTXBLOCK);   /* prevent backlogs ! */
+    /* sockblock(s,SOCK_NOTXBLOCK);   /* prevent backlogs ! BAD FOR LZW! */
     cp = alloc_connection(s);
     lzwinit(s,Lzwbits,Lzwmode);
     cp->flags |= USE_LZW;
--- jnos110m/lzw.c	Fri Aug 26 04:07:50 1994
+++ 110m-new/lzw.c	Sat Jan 20 19:37:11 1996
@@ -82,6 +82,7 @@
     struct usock *up;
     if((up = itop(s)) == NULLUSOCK)
         return;
+    up->noblock = 0;  /* LZW can't afford risk of losing data */
     up->zout = (struct lzw *) callocw(1,sizeof(struct lzw));
     up->zin = (struct lzw *) callocw(1,sizeof(struct lzw));
     up->zout->codebits = LZWBITS;
--- jnos110m/nrcmd.c	Sat Jan  6 05:41:56 1996
+++ 110m-new/nrcmd.c	Sat Jan 20 20:35:00 1996
@@ -1234,7 +1234,7 @@
     memcpy(fsocket.nr_addr.node,np->call,AXALEN);
     fsocket.nr_family = AF_NETROM;
   
-    return tel_connect(sp, (char *)&fsocket, sizeof(struct sockaddr_nr));
+    return tel_connect(sp, (char *)&fsocket, sizeof(struct sockaddr_nr),0);
 }
 #endif
   
--- jnos110m/socket.c	Sat Jan  6 05:41:56 1996
+++ 110m-new/socket.c	Sat Jan 20 20:13:15 1996
@@ -23,7 +23,10 @@
 #include "lzw.h"
 #include "usock.h"
 #include "socket.h"
-  
+
+/* N2RJT - Use the real fopen here, so devices can be accessed. */
+#undef fopen
+
 /* In connect(), accept() and recv_mbuf()
  * the noblock options have been removed, since they never occur anyway.
  * If you want then back, do a '#define useblock 1'
--- jnos110m/telnet.c	Sun Sep 24 15:54:00 1995
+++ 110m-new/telnet.c	Sat Jan 20 20:40:42 1996
@@ -16,6 +16,9 @@
 #include "commands.h"
 #include "netuser.h"
 #include <ctype.h>
+#ifdef LZW
+#include "lzw.h"
+#endif
   
 static int filemode __ARGS((FILE *fp,int mode));
 #define CTLZ    26
@@ -72,6 +75,7 @@
     char *name;
     int split = 0;
     int bbs = 0;
+    int uselzw = 0;
   
     /*Make sure this comes from console - WG7J*/
     if(Curproc->input != Command->input)
@@ -84,14 +88,31 @@
         bbs = 1;
     }
 #ifdef TTYLINKSESSION
-    else
+    else {
 #endif
 #endif
 #ifdef TTYLINKSESSION
         if((strlen(argv[0]) > 1) && (tolower(argv[0][1]) == 't')) /* tty-link command */
             split = 1;
 #endif
-  
+#ifdef LZW
+#ifdef TTYLINKSESSION
+	if((strlen(argv[0]) > 3) && (tolower(argv[0][0]) == 'l') &&
+           (tolower(argv[0][3]) == 'l')) {
+	    uselzw = 1;
+	    split = 1;
+	}
+#endif
+#ifdef TELNETSESSION
+	if((strlen(argv[0]) > 3) && (tolower(argv[0][0]) == 'l') &&
+           (tolower(argv[0][3]) == 'n')) {
+	    uselzw = 1;
+	}
+#endif
+#endif
+#ifdef BBSSESSION
+    }
+#endif  
     /* Allocate a session descriptor */
     if((sp = newsession(name,TELNET,split)) == NULLSESSION){
         tputs(TooManySessions);
@@ -127,13 +148,13 @@
         freesession(sp);
         return 1;
     }
-    return tel_connect(sp,(char *)&fsocket,SOCKSIZE);
+    return tel_connect(sp,(char *)&fsocket,SOCKSIZE, uselzw);
 }
 #endif /* TELNET || TTYLINK || BBS */
   
 /* Generic interactive connect routine, used by Telnet, AX.25, NET/ROM */
 int
-tel_connect(sp,fsocket,len)
+tel_connect(sp,fsocket,len,uselzw)
 struct session *sp;
 char *fsocket;
 int len;
@@ -159,6 +180,10 @@
     }
     tprintf("%s session %u connected to %s\n",
     Sestypes[sp->type],index,sp->name);
+#ifdef LZW
+    if (uselzw)
+        lzwinit(sp->s,Lzwbits,Lzwmode);
+#endif
     tnrecv(&tn);
     return 0;
 }
--- jnos110m/telnet.h	Sun Sep 24 15:54:00 1995
+++ 110m-new/telnet.h	Sat Jan 20 20:37:26 1996
@@ -67,7 +67,7 @@
 extern int Tn_cr_mode;
   
 /* In telnet.c: */
-int tel_connect __ARGS((struct session *sp,char *fsocket,int len));
+int tel_connect __ARGS((struct session *sp,char *fsocket,int len,int uselzw));
 void tel_output __ARGS((int unused,void *p1,void *p2));
 void tnrecv __ARGS((struct telnet *tn));
 void doopt __ARGS((struct telnet *tn,int opt));