diff --git a/ethwire/messaging.go b/ethwire/messaging.go
index 2161ce27fd04de520085642502a48452c5d72835..b1cefc0ae8cadd39ddd73ce311a350376f0bd3c6 100644
--- a/ethwire/messaging.go
+++ b/ethwire/messaging.go
@@ -96,7 +96,7 @@ func ReadMessages(conn net.Conn) (msgs []*Msg, err error) {
 
 	for {
 		// Give buffering some time
-		conn.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
+		conn.SetReadDeadline(time.Now().Add(5 * time.Millisecond))
 		// Create a new temporarily buffer
 		b := make([]byte, 1440)
 		n, _ := conn.Read(b)
@@ -110,6 +110,9 @@ func ReadMessages(conn net.Conn) (msgs []*Msg, err error) {
 		}
 
 		if n == 0 && len(buff) == 0 {
+			// If there's nothing on the wire wait for a bit
+			time.Sleep(200)
+
 			continue
 		}