diff --git a/packages/regexpr/namespaced/System.Oldregexpr.pp b/packages/regexpr/namespaced/System.Oldregexpr.pp
new file mode 100644
index 0000000000..12fa76ab02
--- /dev/null
+++ b/packages/regexpr/namespaced/System.Oldregexpr.pp
@@ -0,0 +1,3 @@
+unit System.Oldregexpr;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i oldregexpr.pp}
diff --git a/packages/regexpr/namespaced/System.Regex.pp b/packages/regexpr/namespaced/System.Regex.pp
new file mode 100644
index 0000000000..6c4e9faddf
--- /dev/null
+++ b/packages/regexpr/namespaced/System.Regex.pp
@@ -0,0 +1,3 @@
+unit System.Regex;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i regex.pp}
diff --git a/packages/regexpr/namespaced/System.Regexpr.pas b/packages/regexpr/namespaced/System.Regexpr.pas
new file mode 100644
index 0000000000..807c03ac2f
--- /dev/null
+++ b/packages/regexpr/namespaced/System.Regexpr.pas
@@ -0,0 +1,3 @@
+unit System.Regexpr;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i regexpr.pas}
diff --git a/packages/regexpr/namespaced/System.URegexpr.pas b/packages/regexpr/namespaced/System.URegexpr.pas
new file mode 100644
index 0000000000..c7457e248c
--- /dev/null
+++ b/packages/regexpr/namespaced/System.URegexpr.pas
@@ -0,0 +1,3 @@
+unit System.URegexpr;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i uregexpr.pp}
diff --git a/packages/regexpr/namespaces.lst b/packages/regexpr/namespaces.lst
new file mode 100644
index 0000000000..7fb3b9f407
--- /dev/null
+++ b/packages/regexpr/namespaces.lst
@@ -0,0 +1,6 @@
+src/regexpr.pas=namespaced/System.Regexpr.pas
+src/uregexpr.pp=namespaced/System.URegexpr.pas
+{s*:src/}=namespaced/
+{i+:src/}
+src/oldregexpr.pp=namespaced/System.Oldregexpr.pp
+src/regex.pp=namespaced/System.Regex.pp
diff --git a/packages/regexpr/src/oldregexpr.pp b/packages/regexpr/src/oldregexpr.pp
index fb1facb55d..245581223b 100644
--- a/packages/regexpr/src/oldregexpr.pp
+++ b/packages/regexpr/src/oldregexpr.pp
@@ -17,15 +17,22 @@
 
  **********************************************************************}
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit OldRegExpr;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {$mode objfpc}
 {$H-}
 
 interface
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.Regex;
+{$ELSE FPC_DOTTEDUNITS}
 uses
   Regex;
+{$ENDIF FPC_DOTTEDUNITS}
 
 type
    tregexprflag = (
diff --git a/packages/regexpr/src/regex.pp b/packages/regexpr/src/regex.pp
index 8b1b76e768..c276b9c38a 100644
--- a/packages/regexpr/src/regex.pp
+++ b/packages/regexpr/src/regex.pp
@@ -19,7 +19,9 @@
 
  **********************************************************************}
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit Regex;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {$mode Delphi}
 {$H-}
@@ -62,9 +64,15 @@ interface
   followed by concatenation, finally followed by alternation.
 }
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.SysUtils,
+  System.Classes;
+{$ELSE FPC_DOTTEDUNITS}
 uses
   SysUtils,
   Classes;
+{$ENDIF FPC_DOTTEDUNITS}
 
 type
   TUpcaseFunc = function(aCh : AnsiChar) : AnsiChar;
@@ -193,7 +201,11 @@ Resourcestring
 
 implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses System.StrUtils;
+{$ELSE FPC_DOTTEDUNITS}
 uses strutils;
+{$ENDIF FPC_DOTTEDUNITS}
 
 const
   MetaCharacters : set of AnsiChar =
diff --git a/packages/regexpr/src/regexpr.pas b/packages/regexpr/src/regexpr.pas
index 7f98244387..9e21bdcb8a 100644
--- a/packages/regexpr/src/regexpr.pas
+++ b/packages/regexpr/src/regexpr.pas
@@ -1,4 +1,6 @@
+{$IFNDEF FPC_DOTTEDUNITS}
 unit regexpr;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {
   TRegExpr class library
@@ -106,6 +108,18 @@ interface
 {$IFDEF D8} {$DEFINE InlineFuncs} {$ENDIF}
 {$IFDEF FPC} {$DEFINE InlineFuncs} {$ENDIF}
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.SysUtils, // Exception
+  {$IFDEF D2009}
+    {$IFDEF D_XE2}
+    System.System.Character,
+    {$ELSE}
+    System.Character,
+    {$ENDIF}
+  {$ENDIF}
+  System.Classes; // TStrings in Split method
+{$ELSE FPC_DOTTEDUNITS}
 uses
   SysUtils, // Exception
   {$IFDEF D2009}
@@ -116,6 +130,7 @@ uses
     {$ENDIF}
   {$ENDIF}
   Classes; // TStrings in Split method
+{$ENDIF FPC_DOTTEDUNITS}
 
 type
   {$IFNDEF FPC}