I ran into a small problem in Silverlight today where I was quering a static list via linq and populating another custom list with the result.
When I proceeded to modify the values of the second list, the first list's values changed as well.
This is when I realised my mistake. LinQ never returns a copy/clone of a queried list, it returns the pointer/reference to the list.