diff --git a/src/xpdev/clx/ThreadCreate/MainUnit.cpp b/src/xpdev/clx/ThreadCreate/MainUnit.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..7989b3dae2b5f8795bc4692336191c0f3e0fb7d7
--- /dev/null
+++ b/src/xpdev/clx/ThreadCreate/MainUnit.cpp
@@ -0,0 +1,40 @@
+//---------------------------------------------------------------------------
+
+#include <clx.h>
+#pragma hdrstop
+
+#include "MainUnit.h"
+#include "ThreadUnit.h"
+
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.xfm"
+TForm1 *Form1;
+//---------------------------------------------------------------------------
+__fastcall TForm1::TForm1(TComponent* Owner)
+	: TForm(Owner)
+{
+	CriticalSection = new TCriticalSection();
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::CreateButtonClick(TObject *Sender)
+{
+	TMyThread* NewThread = new TMyThread(true);
+
+    NewThread->Log=Log;
+    NewThread->CriticalSection = CriticalSection;
+    ListBox->Items->AddObject(NewThread->ThreadID, NewThread);
+    NewThread->Resume();
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::KillButtonClick(TObject *Sender)
+{
+	for(int i=0;i<ListBox->Items->Count;i++)
+    	if(ListBox->Selected[i]) {
+        	TMyThread* MyThread = (TMyThread*)ListBox->Items->Objects[i];
+            MyThread->FreeOnTerminate = true;
+            MyThread->Terminate();
+            ListBox->Items->Delete(i);
+        }
+}
+//---------------------------------------------------------------------------
diff --git a/src/xpdev/clx/ThreadCreate/MainUnit.h b/src/xpdev/clx/ThreadCreate/MainUnit.h
new file mode 100644
index 0000000000000000000000000000000000000000..7f33e93e48d4842bfc7313f9af4e33ed0a0218b2
--- /dev/null
+++ b/src/xpdev/clx/ThreadCreate/MainUnit.h
@@ -0,0 +1,29 @@
+//---------------------------------------------------------------------------
+
+#ifndef MainUnitH
+#define MainUnitH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <SyncObjs.hpp>
+#include <QControls.hpp>
+#include <QStdCtrls.hpp>
+#include <QForms.hpp>
+//---------------------------------------------------------------------------
+class TForm1 : public TForm
+{
+__published:	// IDE-managed Components
+	TListBox *ListBox;
+	TButton *CreateButton;
+	TButton *KillButton;
+	TMemo *Log;
+	void __fastcall CreateButtonClick(TObject *Sender);
+	void __fastcall KillButtonClick(TObject *Sender);
+private:	// User declarations
+public:		// User declarations
+	TCriticalSection* CriticalSection;
+	__fastcall TForm1(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TForm1 *Form1;
+//---------------------------------------------------------------------------
+#endif
diff --git a/src/xpdev/clx/ThreadCreate/MainUnit.xfm b/src/xpdev/clx/ThreadCreate/MainUnit.xfm
new file mode 100644
index 0000000000000000000000000000000000000000..e18ba8fcbdba4c6ae2ce1aeb6ba3cc5ead4dffd8
--- /dev/null
+++ b/src/xpdev/clx/ThreadCreate/MainUnit.xfm
@@ -0,0 +1,48 @@
+object Form1: TForm1
+  Left = 536
+  Top = 314
+  Width = 211
+  Height = 283
+  VertScrollBar.Range = 273
+  HorzScrollBar.Range = 203
+  ActiveControl = ListBox
+  Caption = 'Form1'
+  Color = clBackground
+  PixelsPerInch = 120
+  TextHeight = 16
+  TextWidth = 7
+  object ListBox: TListBox
+    Left = 8
+    Top = 8
+    Width = 193
+    Height = 129
+    TabOrder = 0
+  end
+  object CreateButton: TButton
+    Left = 8
+    Top = 144
+    Width = 75
+    Height = 25
+    Caption = 'Create'
+    TabOrder = 1
+    OnClick = CreateButtonClick
+  end
+  object KillButton: TButton
+    Left = 128
+    Top = 144
+    Width = 75
+    Height = 25
+    Caption = 'Kill'
+    TabOrder = 2
+    OnClick = KillButtonClick
+  end
+  object Log: TMemo
+    Left = 8
+    Top = 184
+    Width = 193
+    Height = 89
+    ReadOnly = True
+    ScrollBars = ssAutoBoth
+    TabOrder = 3
+  end
+end
diff --git a/src/xpdev/clx/ThreadCreate/ThreadCreate.bpr b/src/xpdev/clx/ThreadCreate/ThreadCreate.bpr
new file mode 100644
index 0000000000000000000000000000000000000000..e964e4a59b8bf0466f557c6097e9fd01ceee4749
--- /dev/null
+++ b/src/xpdev/clx/ThreadCreate/ThreadCreate.bpr
@@ -0,0 +1,122 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+  <MACROS>
+    <VERSION value="BCB.06.00"/>
+    <PROJECT value="ThreadCreate.exe"/>
+    <OBJFILES value="ThreadCreate.obj MainUnit.obj ThreadUnit.obj"/>
+    <RESFILES value="ThreadCreate.res"/>
+    <IDLFILES value=""/>
+    <IDLGENFILES value=""/>
+    <DEFFILE value=""/>
+    <RESDEPEN value="$(RESFILES) MainUnit.xfm"/>
+    <LIBFILES value=""/>
+    <LIBRARIES value=""/>
+    <SPARELIBS value="rtl.lib visualclx.lib"/>
+    <PACKAGES value="vcl.bpi rtl.bpi dbrtl.bpi adortl.bpi vcldb.bpi vclx.bpi bdertl.bpi 
+      vcldbx.bpi ibxpress.bpi dsnap.bpi cds.bpi bdecds.bpi qrpt.bpi teeui.bpi 
+      teedb.bpi tee.bpi dss.bpi teeqr.bpi visualclx.bpi visualdbclx.bpi 
+      dsnapcrba.bpi dsnapcon.bpi bcbsmp.bpi vclie.bpi xmlrtl.bpi inet.bpi 
+      inetdbbde.bpi inetdbxpress.bpi inetdb.bpi nmfast.bpi webdsnap.bpi 
+      bcbie.bpi websnap.bpi soaprtl.bpi dclocx.bpi dbexpress.bpi dbxcds.bpi 
+      indy.bpi bcb2kaxserver.bpi"/>
+    <PATHCPP value=".;"/>
+    <PATHPAS value=".;"/>
+    <PATHRC value=".;"/>
+    <PATHASM value=".;"/>
+    <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+    <RELEASELIBPATH value="$(BCB)\lib\release"/>
+    <LINKER value="ilink32"/>
+    <USERDEFINES value="_DEBUG"/>
+    <SYSDEFINES value="_RTLDLL;NO_STRICT;USEPACKAGES"/>
+    <MAINSOURCE value="ThreadCreate.cpp"/>
+    <INCLUDEPATH value="C:\Borland\CBuilder6\Projects;C:\src\xpdev\clx\ThreadCreate;$(BCB)\include;$(BCB)\include\vcl"/>
+    <LIBPATH value="C:\Borland\CBuilder6\Projects;C:\src\xpdev\clx\ThreadCreate;$(BCB)\lib\obj;$(BCB)\lib"/>
+    <WARNINGS value="-w-par"/>
+    <OTHERFILES value=""/>
+  </MACROS>
+  <OPTIONS>
+    <IDLCFLAGS value="-IC:\Borland\CBuilder6\Projects -IC:\src\xpdev\clx\ThreadCreate 
+      -I$(BCB)\include -I$(BCB)\include\vcl -src_suffix cpp -D_DEBUG -boa"/>
+    <CFLAG1 value="-Od -H=$(BCB)\lib\clx60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c 
+      -tW -tWM"/>
+    <PFLAGS value="-$YD -$W -$O- -$A8 -v -JPHNE -M"/>
+    <RFLAGS value=""/>
+    <AFLAGS value="/mx /w2 /zd"/>
+    <LFLAGS value="-D&quot;&quot; -aa -Tpe -x -Gn -v"/>
+    <OTHERFILES value=""/>
+  </OPTIONS>
+  <LINKER>
+    <ALLOBJ value="c0w32.obj $(PACKAGES) Memmgr.Lib sysinit.obj $(OBJFILES)"/>
+    <ALLRES value="$(RESFILES)"/>
+    <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cp32mti.lib"/>
+    <OTHERFILES value=""/>
+  </LINKER>
+  <FILELIST>
+      <FILE FILENAME="ThreadCreate.res" FORMNAME="" UNITNAME="ThreadCreate.res" CONTAINERID="ResTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+      <FILE FILENAME="ThreadCreate.cpp" FORMNAME="" UNITNAME="ThreadCreate" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+      <FILE FILENAME="MainUnit.cpp" FORMNAME="Form1" UNITNAME="MainUnit" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+      <FILE FILENAME="ThreadUnit.cpp" FORMNAME="" UNITNAME="ThreadUnit" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+  </FILELIST>
+  <BUILDTOOLS>
+  </BUILDTOOLS>
+
+  <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+Launcher=
+UseLauncher=0
+DebugCWD=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteLauncher=
+RemoteCWD=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=0
+
+[CORBA]
+AddServerUnit=1
+AddClientUnit=1
+PrecompiledHeaders=1
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+  </IDEOPTIONS>
+</PROJECT>
\ No newline at end of file
diff --git a/src/xpdev/clx/ThreadCreate/ThreadCreate.cpp b/src/xpdev/clx/ThreadCreate/ThreadCreate.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..dffefe56b7f920537948770fbabc0543a58b5eaf
--- /dev/null
+++ b/src/xpdev/clx/ThreadCreate/ThreadCreate.cpp
@@ -0,0 +1,32 @@
+//---------------------------------------------------------------------------
+
+#include <clx.h>
+#pragma hdrstop
+USEFORM("MainUnit.cpp", Form1);
+//---------------------------------------------------------------------------
+WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
+{
+	try
+	{
+		Application->Initialize();
+		Application->CreateForm(__classid(TForm1), &Form1);
+		Application->Run();
+	}
+	catch (Exception &exception)
+	{
+		Application->ShowException(&exception);
+	}
+	catch(...)
+	{
+		try
+		{
+			throw Exception("");
+		}
+		catch(Exception &exception)
+		{
+			Application->ShowException(&exception);
+		}
+	}
+	return 0;
+}
+//---------------------------------------------------------------------------
diff --git a/src/xpdev/clx/ThreadCreate/ThreadCreate.res b/src/xpdev/clx/ThreadCreate/ThreadCreate.res
new file mode 100644
index 0000000000000000000000000000000000000000..e468bf918a523af7a3091b3eec019fa7b1c1693c
Binary files /dev/null and b/src/xpdev/clx/ThreadCreate/ThreadCreate.res differ
diff --git a/src/xpdev/clx/ThreadCreate/ThreadUnit.cpp b/src/xpdev/clx/ThreadCreate/ThreadUnit.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..8bb343dede30d3c85c1d836bd2d31b2c185e10c0
--- /dev/null
+++ b/src/xpdev/clx/ThreadCreate/ThreadUnit.cpp
@@ -0,0 +1,38 @@
+
+//---------------------------------------------------------------------------
+
+#include <clx.h>
+#pragma hdrstop
+
+#include "ThreadUnit.h"
+#pragma package(smart_init)
+//---------------------------------------------------------------------------
+
+//   Important: Methods and properties of objects in CLX can only be
+//   used in a method called using Synchronize, for example:
+//
+//      Synchronize(UpdateCaption);
+//
+//   where UpdateCaption could look like:
+//
+//      void __fastcall TMyThread::UpdateCaption()
+//      {
+//        Form1->Caption = "Updated in a thread";
+//      }
+//---------------------------------------------------------------------------
+
+__fastcall TMyThread::TMyThread(bool CreateSuspended)
+	: TThread(CreateSuspended)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TMyThread::Execute()
+{
+	while(!Terminated) {
+    	CriticalSection->Enter();
+    	Log->Lines->Add(ThreadID);
+        CriticalSection->Leave();
+	    Sleep(1000);
+    }
+}
+//---------------------------------------------------------------------------
diff --git a/src/xpdev/clx/ThreadCreate/ThreadUnit.h b/src/xpdev/clx/ThreadCreate/ThreadUnit.h
new file mode 100644
index 0000000000000000000000000000000000000000..144ae0c88f493e3106d82122934480fc7f40da3d
--- /dev/null
+++ b/src/xpdev/clx/ThreadCreate/ThreadUnit.h
@@ -0,0 +1,21 @@
+
+//---------------------------------------------------------------------------
+
+#ifndef ThreadUnitH
+#define ThreadUnitH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <SyncObjs.hpp>
+//---------------------------------------------------------------------------
+class TMyThread : public TThread
+{
+private:
+protected:
+	void __fastcall Execute();
+public:
+	TMemo*	Log;
+    TCriticalSection* CriticalSection;
+	__fastcall TMyThread(bool CreateSuspended);
+};
+//---------------------------------------------------------------------------
+#endif