diff --git a/components/fpspreadsheet/examples/excel5demo/excel5read.lpi b/components/fpspreadsheet/examples/excel5demo/excel5read.lpi
index 81822828c..ecf292509 100644
--- a/components/fpspreadsheet/examples/excel5demo/excel5read.lpi
+++ b/components/fpspreadsheet/examples/excel5demo/excel5read.lpi
@@ -11,7 +11,7 @@
-
+
@@ -33,7 +33,7 @@
-
+
@@ -68,8 +68,8 @@
-
-
+
+
@@ -88,16 +88,16 @@
-
+
-
+
-
+
@@ -117,7 +117,7 @@
-
+
@@ -151,133 +151,168 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
diff --git a/components/fpspreadsheet/fpolestorage.pas b/components/fpspreadsheet/fpolestorage.pas
index af1f8ef42..245622d7a 100755
--- a/components/fpspreadsheet/fpolestorage.pas
+++ b/components/fpspreadsheet/fpolestorage.pas
@@ -246,7 +246,7 @@ begin
And after that only $FFFFFFFF until $400 }
AStream.WriteDWord(DWordToLE($FFFFFFFD)); // SAT
- AStream.WriteDWord($FFFFFFFF); // Empty
+ AStream.WriteDWord($FFFFFFFE); // Empty, doesn't work with $FFFFFFFF
// If we don't use short sectors we won't write a section for their SSAT
if FUseShortSectors then
diff --git a/components/fpspreadsheet/uvirtuallayer.pas b/components/fpspreadsheet/uvirtuallayer.pas
index d184dfee5..1eaff22b8 100644
--- a/components/fpspreadsheet/uvirtuallayer.pas
+++ b/components/fpspreadsheet/uvirtuallayer.pas
@@ -890,7 +890,11 @@ begin
LHandle^.FL:=FindL;
LHandle^.Attr:=Attr;
{$HINTS OFF}
+ {$ifdef UNIX}
+ Rlst.FindHandle:=LHandle;
+ {$else}
Rlst.FindHandle:=PtrUint(LHandle);
+ {$endif}
{$HINTS ON}
if Assigned(FindL) Then begin
if FindL.Count>0 Then begin
diff --git a/components/fpspreadsheet/xlsbiff5.pas b/components/fpspreadsheet/xlsbiff5.pas
index be30914e0..ebe677b72 100755
--- a/components/fpspreadsheet/xlsbiff5.pas
+++ b/components/fpspreadsheet/xlsbiff5.pas
@@ -57,7 +57,13 @@ interface
uses
Classes, SysUtils, fpcanvas,
- fpspreadsheet, fpolebasic, fpsutils;
+ fpspreadsheet,
+ {$ifdef USE_NEW_OLE}
+ fpolebasic,
+ {$else}
+ fpolestorage,
+ {$endif}
+ fpsutils;
type
diff --git a/components/fpspreadsheet/xlsbiff8.pas b/components/fpspreadsheet/xlsbiff8.pas
index 44c24dd84..f2ac4e364 100755
--- a/components/fpspreadsheet/xlsbiff8.pas
+++ b/components/fpspreadsheet/xlsbiff8.pas
@@ -50,7 +50,13 @@ interface
uses
Classes, SysUtils, fpcanvas,
- fpspreadsheet, fpolebasic, fpsutils;
+ fpspreadsheet,
+ {$ifdef USE_NEW_OLE}
+ fpolebasic,
+ {$else}
+ fpolestorage,
+ {$endif}
+ fpsutils;
type