First, Stoney gave me this very helpful link: http://www.delphibasics.co.uk/RTL.asp?Name=TList

I've got stuff being added and removed from the list just fine, but it seems that it's only removing the pointers, as the memory usage of my program rises indefinitely.

This is the code I use to remove the clouds (What's in the TList)
(Where clouds[] is the TList, and TCloud is the type of object inserted into the list)
[pascal]
TCloud(clouds[i]).Free;
clouds.delete(i);
[/pascal]

(Random rambling below):
Well I've been using Andorra 2D as the engine in my PGD entry, but the built in collision system won't compile in... :| Kind of necessary to make a game...