diff --git a/clientconn.go b/clientconn.go
index <HASH>..<HASH> 100644
--- a/clientconn.go
+++ b/clientconn.go
@@ -539,8 +539,9 @@ func (cc *Conn) Wait(ctx context.Context) (transport.ClientTransport, error) {
 			cc.mu.Unlock()
 			return nil, ErrClientConnClosing
 		case cc.state == Ready:
+			ct := cc.transport
 			cc.mu.Unlock()
-			return cc.transport, nil
+			return ct, nil
 		default:
 			ready := cc.ready
 			if ready == nil {
fix a race between transport creation and wait returning