diff --git a/rtl/bsd/system.pp b/rtl/bsd/system.pp index 910aa449c1..9ca16aa70b 100644 --- a/rtl/bsd/system.pp +++ b/rtl/bsd/system.pp @@ -314,7 +314,12 @@ begin end; function CheckInitialStkLen(stklen : SizeUInt) : SizeUInt; +var + stackpointer: ptruint; begin + stackpointer := (ptruint(sptr) + 4095) and not(4095); + if stklen > stackpointer then + stklen := stackpointer-4096; result := stklen; end;