Moin Nailor,
mir fällt noch etwas ein:
Passiert der Absturz auch ausserhalb der
IDE?
Was wird angezeigt, wenn Du mal ein ShowMessage(IntToStr(Status)) in den finally Block einbindest?
Wenn nach dem finally Block in der Prozedur nicht mehr auf Status zugegriffen wird kann es durch aus sein, dass Status einen, mehr oder weniger, zufälligen Wert enthält, denn dann wird der Inhalt von Status ja nicht mehr gebraucht.
Eventuell legt der Compiler die Variable in ein Register, und das enthält dann "Schrott".