diff --git a/src/sbbs3/chat/MainFormUnit.cpp b/src/sbbs3/chat/MainFormUnit.cpp
index 507eb480ccc3336fca1f6608106247a817e9cde7..5b49fb7d55097cbc9e7f7ba872f03da9270b6500 100644
--- a/src/sbbs3/chat/MainFormUnit.cpp
+++ b/src/sbbs3/chat/MainFormUnit.cpp
@@ -8,7 +8,7 @@
  * @format.tab-size 4		(Plain Text/Source Code File Header)			*
  * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
  *																			*
- * Copyright 2000 Rob Swindell - http://www.synchro.net/copyright.html		*
+ * Copyright 2003 Rob Swindell - http://www.synchro.net/copyright.html		*
  *																			*
  * This program is free software; you can redistribute it and/or			*
  * modify it under the terms of the GNU General Public License				*
@@ -46,6 +46,7 @@
 #include <vcl\Registry.hpp>	/* TRegistry */
 #pragma hdrstop
 
+#include <utime.h>
 #include "gen_defs.h"       /* BS and DEL */
 
 #define PCHAT_LEN 1000		/* Size of Private chat file */
@@ -60,6 +61,10 @@ extern int      node_num;
 extern char     ctrl_dir[];
 extern char     node_dir[];
 extern char     user_name[];
+
+char node_path[MAX_PATH+1];
+char out_path[MAX_PATH+1];
+
 //---------------------------------------------------------------------------
 __fastcall TMainForm::TMainForm(TComponent* Owner)
     : TForm(Owner)
@@ -99,32 +104,35 @@ bool __fastcall TMainForm::ToggleChat(bool on)
     lseek(nodedab, n*sizeof(node_t), SEEK_SET);
     locking(nodedab, LK_UNLCK, sizeof(node_t));
 
+    utime(node_path,NULL);
+
     return(true);
 }
 //---------------------------------------------------------------------------
 void __fastcall TMainForm::FormShow(TObject *Sender)
 {
-    char    path[MAX_PATH+1];
     char*   p;
+    char	path[MAX_PATH+1];
 
     Caption="Waiting for "
         +AnsiString(user_name)+" on Node "+AnsiString(node_num);
 
-    wsprintf(path,"%sNODE.DAB",ctrl_dir);
-    nodedab=_sopen(path,O_RDWR|O_BINARY|O_CREAT, SH_DENYNONE,S_IREAD|S_IWRITE);
+    wsprintf(node_path,"%sNODE.DAB",ctrl_dir);
+    nodedab=_sopen(node_path,O_RDWR|O_BINARY|O_CREAT, SH_DENYNONE,S_IREAD|S_IWRITE);
 
     if(nodedab==-1) {
-        Remote->Lines->Add("!Error opening NODE.DAB");
+        Remote->Lines->Add("!Error opening " + AnsiString(node_path));
         return;
     }
 
     ToggleChat(true);
 
-	wsprintf(path,"%sLCHAT.DAB",node_dir);
-	if((out=_sopen(path,O_RDWR|O_CREAT|O_BINARY,O_DENYNONE
+	wsprintf(out_path,"%sLCHAT.DAB",node_dir);
+	if((out=_sopen(out_path,O_RDWR|O_CREAT|O_BINARY,O_DENYNONE
 		,S_IREAD|S_IWRITE))==-1) {
-		Remote->Lines->Add("!Error opening LCHAT.DAB");
-		return; }
+		Remote->Lines->Add("!Error opening " + AnsiString(out_path));
+		return;
+    }
 
 	wsprintf(path,"%sCHAT.DAB",node_dir);
 #if 0
@@ -186,6 +194,13 @@ void __fastcall TMainForm::LocalKeyPress(TObject *Sender, char &Key)
 {
     char c;
 
+    if(Key==22) {	/* Ctrl-V */
+    	Key=0;
+        return;		/* Don't allow "paste from clipboard" */
+    }
+    if(Key<' ' && Key!='\r' && Key!='\t' && Key!='\b')
+    	return;
+
     if(out==-1 || Local->ReadOnly==true) {
         Beep();
         return;
@@ -202,6 +217,7 @@ void __fastcall TMainForm::LocalKeyPress(TObject *Sender, char &Key)
         write(out,&c,1);
         lseek(out,-1L,SEEK_CUR);
     }
+    utime(out_path,NULL);
     if(tell(out)>=PCHAT_LEN)
         lseek(out,0L,SEEK_SET);
 }
@@ -288,3 +304,6 @@ void __fastcall TMainForm::FormCreate(TObject *Sender)
 }
 //---------------------------------------------------------------------------
 
+
+
+
diff --git a/src/sbbs3/chat/MainFormUnit.dfm b/src/sbbs3/chat/MainFormUnit.dfm
index f878d5e7fdb9ef660eae9806b2dd16b32a88b57f..d4e7d9de7ef25a10f519e8c63947a708d57d1e04 100644
--- a/src/sbbs3/chat/MainFormUnit.dfm
+++ b/src/sbbs3/chat/MainFormUnit.dfm
@@ -7,7 +7,7 @@ object MainForm: TMainForm
   Color = clBtnFace
   Font.Charset = DEFAULT_CHARSET
   Font.Color = clWindowText
-  Font.Height = -11
+  Font.Height = -14
   Font.Name = 'MS Sans Serif'
   Font.Style = []
   OldCreateOrder = False
@@ -15,11 +15,11 @@ object MainForm: TMainForm
   OnClose = FormClose
   OnCreate = FormCreate
   OnShow = FormShow
-  PixelsPerInch = 96
-  TextHeight = 13
+  PixelsPerInch = 120
+  TextHeight = 16
   object Splitter1: TSplitter
     Left = 0
-    Top = 85
+    Top = 105
     Width = 409
     Height = 2
     Cursor = crVSplit
@@ -27,23 +27,38 @@ object MainForm: TMainForm
   end
   object Local: TMemo
     Left = 0
-    Top = 87
+    Top = 107
     Width = 409
-    Height = 137
+    Height = 116
     Align = alClient
+    Color = clBlack
+    Font.Charset = DEFAULT_CHARSET
+    Font.Color = clLime
+    Font.Height = -15
+    Font.Name = 'System'
+    Font.Style = []
+    ParentFont = False
     ReadOnly = True
     ScrollBars = ssVertical
     TabOrder = 0
+    WantTabs = True
     OnKeyPress = LocalKeyPress
   end
   object Remote: TMemo
     Left = 0
     Top = 0
     Width = 409
-    Height = 85
+    Height = 105
     TabStop = False
     Align = alTop
+    Color = clBlack
+    Font.Charset = DEFAULT_CHARSET
+    Font.Color = clGreen
+    Font.Height = -15
+    Font.Name = 'System'
+    Font.Style = []
     HideSelection = False
+    ParentFont = False
     ReadOnly = True
     ScrollBars = ssVertical
     TabOrder = 1
diff --git a/src/sbbs3/chat/chat.bpr b/src/sbbs3/chat/chat.bpr
index 75192a1b5a309cb5fc9e05ddd48d31730dd8dccb..88199d2c406d48b5a6052886e3023cb586807244 100644
--- a/src/sbbs3/chat/chat.bpr
+++ b/src/sbbs3/chat/chat.bpr
@@ -2,7 +2,7 @@
 <!-- C++Builder XML Project -->
 <PROJECT>
   <MACROS>
-    <VERSION value="BCB.05.03"/>
+    <VERSION value="BCB.06.00"/>
     <PROJECT value="chat.exe"/>
     <OBJFILES value="chat.obj MainFormUnit.obj"/>
     <RESFILES value="chat.res"/>
@@ -11,41 +11,51 @@
     <DEFFILE value=""/>
     <RESDEPEN value="$(RESFILES) MainFormUnit.dfm"/>
     <LIBFILES value=""/>
-    <LIBRARIES value="Vcl50.lib"/>
-    <SPARELIBS value="Vcl50.lib"/>
-    <PACKAGES value="Vcl50.bpi Vclx50.bpi bcbsmp50.bpi Vcldb50.bpi vclado50.bpi ibsmp50.bpi 
-      VCLBDE50.bpi vcldbx50.bpi Qrpt50.bpi TeeUI50.bpi TeeDB50.bpi Tee50.bpi 
-      Dss50.bpi TeeQR50.bpi VCLIB50.bpi Vclmid50.bpi vclie50.bpi Inetdb50.bpi 
-      Inet50.bpi NMFast50.bpi webmid50.bpi bcbie50.bpi dclocx50.bpi 
-      bcb97axserver50.bpi"/>
+    <LIBRARIES value="vcl.lib rtl.lib"/>
+    <SPARELIBS value="rtl.lib vcl.lib"/>
+    <PACKAGES value="rtl.bpi vcl.bpi vclx.bpi bcbsmp.bpi dbrtl.bpi vcldb.bpi adortl.bpi 
+      ibsmp.bpi bdertl.bpi vcldbx.bpi qrpt.bpi teeui.bpi teedb.bpi tee.bpi 
+      dss.bpi teeqr.bpi ibxpress.bpi dsnap.bpi vclie.bpi inetdb.bpi inet.bpi 
+      nmfast.bpi webdsnap.bpi bcbie.bpi dclocx.bpi bcb97axserver.bpi"/>
     <PATHCPP value=".;"/>
     <PATHPAS value=".;"/>
     <PATHRC value=".;"/>
     <PATHASM value=".;"/>
     <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
     <RELEASELIBPATH value="$(BCB)\lib\release"/>
-    <LINKER value="tlink32"/>
+    <LINKER value="ilink32"/>
     <USERDEFINES value=""/>
     <SYSDEFINES value="NO_STRICT"/>
     <MAINSOURCE value="chat.cpp"/>
-    <INCLUDEPATH value="$(BCB)\include;..;$(BCB)\include\vcl"/>
+    <INCLUDEPATH value="$(BCB)\include;..\..\xpdev;$(BCB)\include\vcl"/>
     <LIBPATH value="$(BCB)\lib\obj;$(BCB)\lib"/>
     <WARNINGS value="-w-par"/>
+    <OTHERFILES value=""/>
   </MACROS>
   <OPTIONS>
-    <IDLCFLAGS value="-I$(BCB)\include -I.. -I$(BCB)\include\vcl -src_suffix cpp"/>
-    <CFLAG1 value="-Od -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -vi- -c -tW 
-      -tWM"/>
-    <PFLAGS value="-$YD -$W -$O- -v -JPHNE -M"/>
+    <IDLCFLAGS value="-I$(BCB)\include -I..\..\xpdev -I$(BCB)\include\vcl -src_suffix cpp"/>
+    <CFLAG1 value="-O2 -H=c:\borland\CBUILD~2\lib\vcl60.csm -Hc -Vx -Ve -X- -a8 -b- -k- -vi 
+      -c -tW -tWM"/>
+    <PFLAGS value="-$Y- -$L- -$D- -$A8 -v -JPHNE -M"/>
     <RFLAGS value=""/>
-    <AFLAGS value="/mx /w2 /zd"/>
+    <AFLAGS value="/mx /w2 /zn"/>
     <LFLAGS value="-D&quot;&quot; -aa -Tpe -GD -s -Gn"/>
+    <OTHERFILES value=""/>
   </OPTIONS>
   <LINKER>
     <ALLOBJ value="c0w32.obj sysinit.obj $(OBJFILES)"/>
     <ALLRES value="$(RESFILES)"/>
     <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cp32mt.lib"/>
+    <OTHERFILES value=""/>
   </LINKER>
+  <FILELIST>
+      <FILE FILENAME="chat.cpp" FORMNAME="" UNITNAME="chat" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+      <FILE FILENAME="chat.res" FORMNAME="" UNITNAME="chat" CONTAINERID="ResTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+      <FILE FILENAME="MainFormUnit.cpp" FORMNAME="MainForm" UNITNAME="MainFormUnit" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+  </FILELIST>
+  <BUILDTOOLS>
+  </BUILDTOOLS>
+
   <IDEOPTIONS>
 [Version Info]
 IncludeVerInfo=0
@@ -75,9 +85,10 @@ ProductVersion=1.0.0.0
 Comments=
 
 [HistoryLists\hlIncludePath]
-Count=2
-Item0=$(BCB)\include;..;$(BCB)\include\vcl
-Item1=$(BCB)\include;$(BCB)\include\vcl
+Count=3
+Item0=$(BCB)\include;..\..\xpdev;$(BCB)\include\vcl
+Item1=$(BCB)\include;..;$(BCB)\include\vcl
+Item2=$(BCB)\include;$(BCB)\include\vcl
 
 [HistoryLists\hlLibraryPath]
 Count=1
@@ -91,10 +102,15 @@ Item0=$(BCB)\source\vcl
 DebugSourceDirs=$(BCB)\source\vcl
 
 [Parameters]
-RunParams=c:\sbbs\ctrl\ c:\sbbs\node1\ 1
+RunParams=s:\sbbs\ctrl\ s:\sbbs\node6\ 6 test
+Launcher=
+UseLauncher=0
+DebugCWD=
 HostApplication=
 RemoteHost=
 RemotePath=
+RemoteLauncher=
+RemoteCWD=
 RemoteDebug=0
 
 [Compiler]
diff --git a/src/sbbs3/chat/chat.cpp b/src/sbbs3/chat/chat.cpp
index 7b55dd5431b4ae5f193743374e5356affd7201e6..de843aa271c033ade560133524a2ebeb5ebaf2b6 100644
--- a/src/sbbs3/chat/chat.cpp
+++ b/src/sbbs3/chat/chat.cpp
@@ -8,7 +8,7 @@
  * @format.tab-size 4		(Plain Text/Source Code File Header)			*
  * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
  *																			*
- * Copyright 2000 Rob Swindell - http://www.synchro.net/copyright.html		*
+ * Copyright 2003 Rob Swindell - http://www.synchro.net/copyright.html		*
  *																			*
  * This program is free software; you can redistribute it and/or			*
  * modify it under the terms of the GNU General Public License				*
@@ -98,7 +98,8 @@ WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR cmdline, int)
     try
     {
          Application->Initialize();
-         Application->CreateForm(__classid(TMainForm), &MainForm);
+         Application->Title = "Synchronet Sysop Chat";
+		Application->CreateForm(__classid(TMainForm), &MainForm);
          Application->Run();
     }
     catch (Exception &exception)
diff --git a/src/sbbs3/chat/chat.res b/src/sbbs3/chat/chat.res
index 32b522d0446895614bc4b68603238d2e2e1f4263..41f32636dea08c6fa9bd04c06bf7cdb93c19c2d7 100644
Binary files a/src/sbbs3/chat/chat.res and b/src/sbbs3/chat/chat.res differ