Nick,
It puts 10000 references to the same object into the collection. If you want 10,000 different objects move your oItem = createobject() inside your loop.
>Am I doing this wrong, does this create a different oItem for each iteration or does it just create a link to the same object each time.
>
oCol=CREATEOBJECT("Collection")
>oItem=CREATEOBJECT("Empty")
> AddProperty(oItem, "MyProp1", "One")
>
>FOR nCount=1 TO 10000
> oCol.Add(oItem)
>ENDFOR