Zur Referenz noch die Diskussion, wo das Problem vor einigen Jahren auch schon auffiel:
http://www.delphipraxis.net/151504-s...ehlerhaft.html
Zumindest mit Delphi 2010 stieß ich hier ebenfalls auch Ungereimtheiten und habe mir eine eigene, modifizierte Variante schreiben müssen, die korrekt rechnet.