When a connection is recycled, and the pool is full, the old connection would be disposed twice.

This would happen because the Queue.Full exception would be raised, and so "conn"" would be the old connection that has already been disposed. This connection would again be disposed due to the Full exception.