Here is how it works: you have a reference to your ".net" object instance the memory that object occupies is released by the GC when no references are left. Dispose is used to release native resources , such as filehandles , db connections or memory allocated by some native resource. so ".Dispose" does not kill the .net object itself , it just tells it to drop its expensive resources. if you are working with images , eg in DX there are plenty of unmanaged resources behind the scenes , and your .net object is told to drop those directly ... therefore Christian get a big chunk of memory back. if your object does not hold any references to any native resources (directly or inderectly) you will not gain anything by implementing idisposable on that class. eg if your class has a big arraylist or array and you set it to null in your dispose method , you will not gain anything since those are managed resources taht will be released by the GC. //Roger