I have a global connection object which I use for all my data access. So, this is much faster. However, sometimes, if two transactions are hitting the Web site at the same time, one could receive an object not a reference error. So, I thought about the idea of obtaining a reference to that global connection object. The reference to it always work, even when two simultaneous hits happen. It is just later down below in the data access, such as a ExecuteReader() or Dataset.Fill() command that I can have this situation. So, once the reference is done, if I can obtain a clone copy of the connection and use that instead, the problem would go away. But, for a connection object, the Clone() method is not available. Anyone knows a workaround?