diff --git a/lib/delphi/src/Thrift.Serializer.pas b/lib/delphi/src/Thrift.Serializer.pas
index cf646c8..b4d6e6d 100644
--- a/lib/delphi/src/Thrift.Serializer.pas
+++ b/lib/delphi/src/Thrift.Serializer.pas
@@ -18,10 +18,18 @@
  *)
 unit Thrift.Serializer;
 
+{$IF CompilerVersion >= 23.0}
+  {$LEGACYIFEND ON}
+{$IFEND}
+
 interface
 
 uses
-  Classes, Windows, SysUtils,
+  {$IF CompilerVersion < 23.0}
+    Classes, Windows, SysUtils,
+  {$ELSE}
+    System.Classes, Winapi.Windows, System.SysUtils,
+  {$IFEND}
   Thrift.Protocol,
   Thrift.Transport,
   Thrift.Stream;
diff --git a/lib/delphi/src/Thrift.Server.pas b/lib/delphi/src/Thrift.Server.pas
index 2935747..8d95ed2 100644
--- a/lib/delphi/src/Thrift.Server.pas
+++ b/lib/delphi/src/Thrift.Server.pas
@@ -20,11 +20,18 @@
  unit Thrift.Server;
 
 {$I-}  // prevent annoying errors with default log delegate and no console
+{$IF CompilerVersion >= 23.0}
+  {$LEGACYIFEND ON}
+{$IFEND}
 
 interface
 
 uses
-  Windows, SysUtils,
+  {$IF CompilerVersion < 23.0}
+    Windows, SysUtils,
+  {$ELSE}
+    Winapi.Windows, System.SysUtils,
+  {$IFEND}
   Thrift,
   Thrift.Protocol,
   Thrift.Transport;
diff --git a/lib/delphi/src/Thrift.Stream.pas b/lib/delphi/src/Thrift.Stream.pas
index 74c1782..d78afe6 100644
--- a/lib/delphi/src/Thrift.Stream.pas
+++ b/lib/delphi/src/Thrift.Stream.pas
@@ -19,6 +19,10 @@
 
 unit Thrift.Stream;
 
+{$IF CompilerVersion >= 23.0}
+  {$LEGACYIFEND ON}
+{$IFEND}
+
 interface
 
 uses
@@ -26,8 +30,12 @@
   SysUtils,
   SysConst,
   RTLConsts,
-  Thrift.Utils,
-  ActiveX;
+  {$IF CompilerVersion < 23.0}
+    ActiveX,
+  {$ELSE}
+    Winapi.ActiveX,
+  {$IFEND}
+  Thrift.Utils;
 
 type
 
@@ -140,7 +148,7 @@
 var
   statstg: TStatStg;
   len : Integer;
-  NewPos : {$IF CompilerVersion >= 30.0} UInt64 {$ELSE} Int64  {$IFEND};
+  NewPos : {$IF CompilerVersion >= 29.0} UInt64 {$ELSE} Int64  {$IFEND};
   cbRead : Integer;
 begin
   FillChar( statstg, SizeOf( statstg), 0);
diff --git a/lib/delphi/src/Thrift.Transport.Pipes.pas b/lib/delphi/src/Thrift.Transport.Pipes.pas
index 47f3b4d..9e62341 100644
--- a/lib/delphi/src/Thrift.Transport.Pipes.pas
+++ b/lib/delphi/src/Thrift.Transport.Pipes.pas
@@ -19,11 +19,18 @@
 unit Thrift.Transport.Pipes;
 
 {$WARN SYMBOL_PLATFORM OFF}
+{$IF CompilerVersion >= 23.0}
+  {$LEGACYIFEND ON}
+{$IFEND}
 
 interface
 
 uses
+{$IF CompilerVersion < 23.0}
   Windows, SysUtils, Math, AccCtrl, AclAPI, SyncObjs,
+{$ELSE}
+  Winapi.Windows, System.SysUtils, System.Math, Winapi.AccCtrl, Winapi.AclAPI, System.SyncObjs,
+{$IFEND}
   Thrift.Transport,
   Thrift.Utils,
   Thrift.Stream;
@@ -896,9 +903,14 @@
 
 
 function TNamedPipeServerTransportImpl.Handle : THandle;
+{$IFDEF WIN64}
+var
+  Hndl: Integer;
+{$ENDIF}
 begin
   {$IFDEF WIN64}
-  result := THandle( InterlockedExchangeAdd64( Integer(FHandle), 0));
+  Hndl := Integer(FHandle);
+  result := THandle( InterlockedExchangeAdd( Hndl, 0));
   {$ELSE}
   result := THandle( InterlockedExchangeAdd( Integer(FHandle), 0));
   {$ENDIF}
@@ -946,6 +958,7 @@
     sa.bInheritHandle       := FALSE;
 
     // Create an instance of the named pipe
+{$IF CompilerVersion < 23.0}
     result := Windows.CreateNamedPipe( PChar( FPipeName),        // pipe name
                                        PIPE_ACCESS_DUPLEX or     // read/write access
                                        FILE_FLAG_OVERLAPPED,     // async mode
@@ -956,6 +969,18 @@
                                        FBufSize,                 // input buffer size
                                        FTimeout,                 // time-out, see MSDN
                                        @sa);                     // default security attribute
+{$ELSE}
+    result := Winapi.Windows.CreateNamedPipe( PChar( FPipeName),        // pipe name
+                                       PIPE_ACCESS_DUPLEX or     // read/write access
+                                       FILE_FLAG_OVERLAPPED,     // async mode
+                                       PIPE_TYPE_BYTE or         // byte type pipe
+                                       PIPE_READMODE_BYTE,       // byte read mode
+                                       FMaxConns,                // max. instances
+                                       FBufSize,                 // output buffer size
+                                       FBufSize,                 // input buffer size
+                                       FTimeout,                 // time-out, see MSDN
+                                       @sa);                     // default security attribute
+{$IFEND}
 
     if( result <> INVALID_HANDLE_VALUE)
     then InterlockedExchangePointer( Pointer(FHandle), Pointer(result))
diff --git a/lib/delphi/src/Thrift.Transport.pas b/lib/delphi/src/Thrift.Transport.pas
index c0d6712..c0f3111 100644
--- a/lib/delphi/src/Thrift.Transport.pas
+++ b/lib/delphi/src/Thrift.Transport.pas
@@ -17,7 +17,10 @@
  * under the License.
  *)
 
- {$SCOPEDENUMS ON}
+{$SCOPEDENUMS ON}
+{$IF CompilerVersion >= 23.0}
+  {$LEGACYIFEND ON}
+{$IFEND}
 
 {$IF CompilerVersion < 28.0}
   {$DEFINE OLD_SOCKETS}   // TODO: add socket support for CompilerVersion >= 28.0
@@ -32,16 +35,20 @@
   Classes,
   SysUtils,
   Math,
-  WinSock,
-  {$IFDEF OLD_SOCKETS}
-  Sockets,
-  {$ENDIF}
   Generics.Collections,
+{$IF CompilerVersion < 23.0}
+  ActiveX, msxml, WinSock, Sockets,
+{$ELSE}
+  Winapi.ActiveX, Winapi.msxml, Winapi.WinSock,
+  {$IF CompilerVersion < 28.0}
+    Web.Win.Sockets,
+  {$ELSE}
+    System.Win.ScktComp,
+  {$IFEND}
+{$IFEND}
   Thrift.Collections,
   Thrift.Utils,
-  Thrift.Stream,
-  ActiveX,
-  msxml;
+  Thrift.Stream;
 
 type
   ITransport = interface
@@ -1253,7 +1260,11 @@
   wsaError := 0;
   try
 {$IFDEF MSWINDOWS}
+  {$IF CompilerVersion < 23.0}
     result := WinSock.select(socket + 1, ReadFdsptr, WriteFdsptr, ExceptFdsptr, Timeptr);
+  {$ELSE}
+    result := Winapi.WinSock.select(socket + 1, ReadFdsptr, WriteFdsptr, ExceptFdsptr, Timeptr);
+  {$IFEND}
 {$ENDIF}
 {$IFDEF LINUX}
     result := Libc.select(socket + 1, ReadFdsptr, WriteFdsptr, ExceptFdsptr, Timeptr);
@@ -1293,7 +1304,11 @@
 
   // recv() returns the number of bytes received, or -1 if an error occurred.
   // The return value will be 0 when the peer has performed an orderly shutdown.
+{$IF CompilerVersion < 23.0}
   retval := recv( FTcpClient.Handle, pBuf^, DesiredBytes, WinSock.MSG_PEEK);
+{$ELSE}
+  retval := recv( FTcpClient.Handle, pBuf^, DesiredBytes, Winapi.WinSock.MSG_PEEK);
+{$IFEND}
   if retval <= 0
   then Exit( TWaitForData.wfd_Error);
 
diff --git a/lib/delphi/src/Thrift.Utils.pas b/lib/delphi/src/Thrift.Utils.pas
index 17131ef..962ef54 100644
--- a/lib/delphi/src/Thrift.Utils.pas
+++ b/lib/delphi/src/Thrift.Utils.pas
@@ -21,8 +21,16 @@
 
 interface
 
+{$IF CompilerVersion >= 23.0}
+  {$LEGACYIFEND ON}
+{$IFEND}
+
 uses
+{$IF CompilerVersion < 23.0}
   Classes, Windows, SysUtils, Character, SyncObjs;
+{$ELSE}
+  System.Classes, Winapi.Windows, System.SysUtils, System.Character, System.SyncObjs;
+{$IFEND}
 
 type
   IOverlappedHelper = interface
@@ -199,7 +207,11 @@
   {$IF RTLVersion  >= 28.0}  // XE7+
   result := c.IsHighSurrogate();
   {$ELSE}
-  result := Character.IsHighSurrogate( c);
+    {$IF CompilerVersion < 23.0}
+      result := Character.IsHighSurrogate( c);
+    {$ELSE}
+      result := c.IsHighSurrogate;
+    {$IFEND}
   {$IFEND}
 end;
 
@@ -209,7 +221,11 @@
   {$IF RTLVersion  >= 28.0}  // XE7+
   result := c.IsLowSurrogate();
   {$ELSE}
-  result := Character.IsLowSurrogate( c);
+    {$IF CompilerVersion < 23.0}
+      result := Character.IsLowSurrogate( c);
+    {$ELSE}
+      result := c.IsLowSurrogate;
+    {$IFEND}
   {$IFEND}
 end;
 
