The problem appears clear: Objects are never actually added to the list, all that is ever added is a reference to an object. In this case, what is being added is just copies of references to new objects, rather than references to new objects. You pointed out where the problem is occuring, and I managed to overlook that part and identify where the problem was occuring by looking at the code, so your previous statement matches up with what I was seeing. However, you don't show what is happening in that Add argument which is causing the trouble.