diff --git a/components/fpspreadsheet/examples/excel8demo/excel8write.lpi b/components/fpspreadsheet/examples/excel8demo/excel8write.lpi
index 733107628..cbe3f4022 100644
--- a/components/fpspreadsheet/examples/excel8demo/excel8write.lpi
+++ b/components/fpspreadsheet/examples/excel8demo/excel8write.lpi
@@ -44,6 +44,9 @@
+
+
+
@@ -71,6 +74,9 @@
+
+
+
@@ -115,5 +121,8 @@
+
+
+
diff --git a/components/fpspreadsheet/fpolebasic.pas b/components/fpspreadsheet/fpolebasic.pas
index 1996e9d2d..051fffe54 100644
--- a/components/fpspreadsheet/fpolebasic.pas
+++ b/components/fpspreadsheet/fpolebasic.pas
@@ -57,7 +57,12 @@ var
tmpStream: TStream; // workaround to a compiler bug, see bug 22370
begin
VLAbsolutePath:='/'+AStreamName; //Virtual layer always use absolute paths.
- if not AOverwriteExisting and FileExists(AFileName) then begin
+ if FileExists(AFileName) then begin
+ if AOverwriteExisting then
+ DeleteFile(AFileName)
+ // In Ubuntu is seems that fmCreate does not erase an existing file.
+ // Therefore we delete it manually.
+ else
Raise EStreamError.Createfmt('File "%s" already exists.',[AFileName]);
end;
RealFile:=TFileStream.Create(AFileName,fmCreate);
diff --git a/components/fpspreadsheet/fpspreadsheet.pas b/components/fpspreadsheet/fpspreadsheet.pas
index e0fdca383..c6a4cf151 100755
--- a/components/fpspreadsheet/fpspreadsheet.pas
+++ b/components/fpspreadsheet/fpspreadsheet.pas
@@ -14,6 +14,9 @@ unit fpspreadsheet;
interface
uses
+ {$IFDEF UNIX}
+ clocale,
+ {$ENDIF}
Classes, SysUtils, fpimage, AVL_Tree, avglvltree, lconvencoding;
type
@@ -1094,9 +1097,6 @@ procedure InitCell(var ACell: TCell);
implementation
uses
- {$IFDEF UNIX}
- clocale,
- {$ENDIF}
Math, StrUtils, TypInfo, fpsStreams, fpsUtils, fpsNumFormatParser, fpsFunc;
{ Translatable strings }