ich bin über einen bug gestolpert

Experimentiere etwas mit mercurial und da hab ich festgestellt, ich habe geister im Projekt. Das "lib" verzeichnis hab ich auf ignorieren gesetzt, wird sowieso auf jedem system beim kompilieren erzeugt.
Hatte eine "TestForm", dieses nach dem ich es nicht mehr benötigte im Projektinspektor entfernt, auch sonst alles was mit der Form im restlichen Quellcode in Verbindung stehen könnte gelöscht bzw auskommentiert. Die Quellcodedateien der Testform lasse ich aber im Verzeichnis. Das kompilieren klappte auch. an das Masterrepository geschickt. von dort aus auf meinem Windows-Laptop neuen clone erzeugt und in Lazarus geöffnet. Jetzt steigt Lazarus aus, weil er die TestForm.lrs nicht findet. Füge ich die Testform wieder dem Projekt hinzu compiliert er ohne Probleme, entferne ich die TestForm aus dem Projekt kann er auch weiterhin compilieren. Lösche ich aber unter lib\i386-win32 alles was zu TestForm gehört, steigt Lazarus wieder aus.
Nach löschen der unittestform.ppu wird diese wieder erzeugt, nach dem Löschen der der unittestform.lrs, unittestform.o steigt der Compiler wieder aus. Erst wenn ich die unit wieder dem Projekt hinzu füge läuft es wieder. Verschiedene Versuche unter Linux zeigten die selbe Wirkung.
Irgendwie scheinen beim entfernen von Units noch Rester zu verbleiben weshalb die compilate unter lib weiterhin benötigt werden.
System: Linux (openSuSE 11.2) und Windows XP
Lazarus Version: 0.9.28.3 (FPC 2.2.4) (Windows und Linux); Snapshot 0.9.29 (FPC 2.3.1) 20091205 (Windows)