diff --git a/eth/downloader/downloader.go b/eth/downloader/downloader.go
index 574f2ba15eab5aea80b3d0bc27543e3be9a40e40..73f95bf648634996326329ca8120861dd8a0f55d 100644
--- a/eth/downloader/downloader.go
+++ b/eth/downloader/downloader.go
@@ -739,9 +739,11 @@ func (d *Downloader) fetchBlocks61(from uint64) error {
 				break
 			}
 			// Send a download request to all idle peers, until throttled
+			throttled := false
 			for _, peer := range d.peers.IdlePeers() {
 				// Short circuit if throttling activated
 				if d.queue.Throttle() {
+					throttled = true
 					break
 				}
 				// Reserve a chunk of hashes for a peer. A nil can mean either that
@@ -762,7 +764,7 @@ func (d *Downloader) fetchBlocks61(from uint64) error {
 			}
 			// Make sure that we have peers available for fetching. If all peers have been tried
 			// and all failed throw an error
-			if !d.queue.Throttle() && d.queue.InFlight() == 0 {
+			if !throttled && d.queue.InFlight() == 0 {
 				return errPeersUnavailable
 			}
 		}