diff --git a/http2/server_test.go b/http2/server_test.go
index 23d8a62..ae45f31 100644
--- a/http2/server_test.go
+++ b/http2/server_test.go
@@ -478,31 +478,8 @@
 	}
 }
 
-func readFrameTimeout(fr *Framer, wait time.Duration) (Frame, error) {
-	ch := make(chan interface{}, 1)
-	go func() {
-		fr, err := fr.ReadFrame()
-		if err != nil {
-			ch <- err
-		} else {
-			ch <- fr
-		}
-	}()
-	t := time.NewTimer(wait)
-	select {
-	case v := <-ch:
-		t.Stop()
-		if fr, ok := v.(Frame); ok {
-			return fr, nil
-		}
-		return nil, v.(error)
-	case <-t.C:
-		return nil, errors.New("timeout waiting for frame")
-	}
-}
-
 func (st *serverTester) readFrame() (Frame, error) {
-	return readFrameTimeout(st.fr, 2*time.Second)
+	return st.fr.ReadFrame()
 }
 
 func (st *serverTester) wantHeaders() *HeadersFrame {
diff --git a/http2/transport_test.go b/http2/transport_test.go
index 1d2210f..1cdd981 100644
--- a/http2/transport_test.go
+++ b/http2/transport_test.go
@@ -863,7 +863,7 @@
 }
 
 func (ct *clientTester) readFrame() (Frame, error) {
-	return readFrameTimeout(ct.fr, 2*time.Second)
+	return ct.fr.ReadFrame()
 }
 
 func (ct *clientTester) firstHeaders() (*HeadersFrame, error) {
