Ich würde noch (auch wenn es noch so abstrus erscheint) folgende Abfrage einbauen:
Delphi-Quellcode:
if ((not (Item1 is TMMItem)) OR (not (Item2 is TMMItem))) then
raise EAbort.Create('Hier stimmt was nicht');
Grund: Bei nicht generischen Listen ist es ganz einfach, mal ein falsches Objekt in die Liste zu bekommen und das birgt dann unbekannte Risiken, insbesondere eine ganze Menge an AVs, wenn man die Objekte wieder frei geben will und sie vorher schon weg sind.
Bernhard