Index: unix/clocale.pp
===================================================================
--- unix/clocale.pp	(revisión: 13008)
+++ unix/clocale.pp	(copia de trabajo)
@@ -306,6 +306,9 @@
     NegCurrFormat := NegFormatsTable[signp, prec, sep];
   //Number stuff
   ThousandSeparator:=GetLocaleChar(__THOUSANDS_SEP);
+  Sep := ord(GetLocaleChar(__MON_THOUSANDS_SEP));
+  if ThousandSeparator=#0 then
+    ThousandSeparator := char(Sep);
   {$endif}
   DecimalSeparator:=GetLocaleChar(RADIXCHAR);
 end;
Index: objpas/sysutils/sysstr.inc
===================================================================
--- objpas/sysutils/sysstr.inc	(revisión: 13008)
+++ objpas/sysutils/sysstr.inc	(copia de trabajo)
@@ -1369,7 +1369,8 @@
         Dec(P, 3);
         While (P > 1) Do
         Begin
-          If Result[P - 1] <> '-' Then Insert(FormatSettings.ThousandSeparator, Result, P);
+          If (Result[P - 1] <> '-') And (FormatSettings.ThousandSeparator <> #0) Then
+            Insert(FormatSettings.ThousandSeparator, Result, P);
           Dec(P, 3);
         End;
       End;
@@ -1401,7 +1402,8 @@
         Dec(P, 3);
         While (P > 1) Do
         Begin
-          Insert(FormatSettings.ThousandSeparator, Result, P);
+          If FormatSettings.ThousandSeparator<>#0 Then
+            Insert(FormatSettings.ThousandSeparator, Result, P);
           Dec(P, 3);
         End;
 
@@ -1954,7 +1956,7 @@
               End;
             ',':
               Begin
-              thousand := True;
+              thousand := DefaultFormatSettings.ThousandSeparator<>#0;
               Inc(Fmt);
               End;
             'e', 'E':
