Index: rtl/objpas/classes/classesh.inc
===================================================================
--- rtl/objpas/classes/classesh.inc	(revision 43805)
+++ rtl/objpas/classes/classesh.inc	(working copy)
@@ -742,8 +742,10 @@
     Procedure Reverse(aList : TStrings);
     procedure SaveToFile(const FileName: string); overload; virtual;
     procedure SaveToFile(const FileName: string; AEncoding: TEncoding); overload; virtual;
+    procedure SaveToFile(const FileName: string; AEncoding: TEncoding; AWriteBom: Boolean); overload; virtual;
     procedure SaveToStream(Stream: TStream); overload; virtual;
     procedure SaveToStream(Stream: TStream; AEncoding: TEncoding); overload; virtual;
+    procedure SaveToStream(Stream: TStream; AEncoding: TEncoding; AWriteBom: Boolean); overload; virtual;
     function Shift : String;
     Procedure Slice(fromIndex: integer; aList : TStrings);
     Function Slice(fromIndex: integer) : TStrings;
Index: rtl/objpas/classes/stringl.inc
===================================================================
--- rtl/objpas/classes/stringl.inc	(revision 43805)
+++ rtl/objpas/classes/stringl.inc	(working copy)
@@ -1444,13 +1444,18 @@
 
 
 Procedure TStrings.SaveToFile(const FileName: string; AEncoding: TEncoding);
+begin
+  SaveToFile(FileName, AEncoding, FWriteBOM);
+end;
 
+Procedure TStrings.SaveToFile(const FileName: string; AEncoding: TEncoding; AWriteBom: Boolean);
+
 Var TheStream : TFileStream;
 
 begin
   TheStream:=TFileStream.Create(FileName,fmCreate);
   try
-    SaveToStream(TheStream,AEncoding);
+    SaveToStream(TheStream,AEncoding, AWriteBom);
   finally
     TheStream.Free;
   end;
@@ -1473,16 +1478,19 @@
 end;
 
 
+Procedure TStrings.SaveToStream(Stream: TStream; AEncoding: TEncoding);
+begin
+  SaveToStream(Stream, AEncoding, FWriteBOM);
+end;
 
+Procedure TStrings.SaveToStream(Stream: TStream; AEncoding: TEncoding; AWriteBom: Boolean);
 
-Procedure TStrings.SaveToStream(Stream: TStream; AEncoding: TEncoding);
-
 Var B : TBytes;
 
 begin
   if AEncoding=nil then
     AEncoding:=FDefaultEncoding;
-  if FWriteBOM then
+  if AWriteBOM then
     begin
       B:=AEncoding.GetPreamble;
       if Length(B)>0 then
