diff --git a/server.go b/server.go
index be4d4e6..dd86427 100644
--- a/server.go
+++ b/server.go
@@ -262,18 +262,26 @@
 			c.Close()
 			return nil
 		}
-		st, err := transport.NewServerTransport("http2", c, s.opts.maxConcurrentStreams, authInfo)
-		if err != nil {
-			s.errorf("NewServerTransport(%q) failed: %v", c.RemoteAddr(), err)
-			s.mu.Unlock()
-			c.Close()
-			grpclog.Println("grpc: Server.Serve failed to create ServerTransport: ", err)
-			continue
-		}
-		s.conns[st] = true
 		s.mu.Unlock()
 
 		go func() {
+			st, err := transport.NewServerTransport("http2", c, s.opts.maxConcurrentStreams, authInfo)
+			if err != nil {
+				s.mu.Lock()
+				s.errorf("NewServerTransport(%q) failed: %v", c.RemoteAddr(), err)
+				s.mu.Unlock()
+				c.Close()
+				grpclog.Println("grpc: Server.Serve failed to create ServerTransport: ", err)
+				return
+			}
+			defer st.Close()
+			s.mu.Lock()
+			if s.conns == nil {
+				s.mu.Unlock()
+				return
+			}
+			s.conns[st] = true
+			s.mu.Unlock()
 			var wg sync.WaitGroup
 			st.HandleStreams(func(stream *transport.Stream) {
 				var trInfo *traceInfo
