Nachdem du nicht mit Length(liste) arbeitest, drängt sich der Verdacht auf, dass eben einfach der Index dann nicht mehr stimmt. Wie äußern sich denn die Probleme?
Übrigens reicht es, das array einfach um eins zu verkürzen, um das letzte Element zu entfernen - der Speicher wird dann ja eh freigegeben