Sorry I do not follow.
b is a variable of type namedpair, list1 is a list to which I am adding (to the end) the value of b, as I do this I am writing the value of b to the listview to form the 1st three rows and they all change.
Then I start reading back the items I stored in list1 based on the index position (0,1,2,), and they are all the same?
To me the first 3 tasks shows that the variable b (or type namepair) is getting updated, so I would expect the values to get added to the list1.
Or are you saying what is added to list1 is in fact a 'pointer' to b, thus I am adding 3 pointers to list1, and they all point to b, thus on reading back I get the last value set??
If so, how would I go about this, basically I want to read a DB in one sub hold the values of the query in some structure that I can pass around to other subs. I have all the DB stuff working etc