diff --git a/eth/downloader/downloader.go b/eth/downloader/downloader.go
index 806f60f1b874e3e824383a2b5cc21c2e66f7145d..d8dbef726d13c9870409ab0293dea6020390b033 100644
--- a/eth/downloader/downloader.go
+++ b/eth/downloader/downloader.go
@@ -428,24 +428,22 @@ out:
 						return err
 					}
 					// Peer did deliver, but some blocks were off, penalize
-					glog.V(logger.Detail).Infof("%s: block delivery failed: %v", peer, err)
 					peer.Demote()
 					peer.SetIdle()
+					glog.V(logger.Detail).Infof("%s: block delivery failed: %v", peer, err)
 					break
 				}
 				// If no blocks were delivered, demote the peer (above code is needed to mark the packet done!)
 				if len(blockPack.blocks) == 0 {
-					glog.V(logger.Detail).Infof("%s: no blocks delivered", peer)
 					peer.Demote()
 					peer.SetIdle()
+					glog.V(logger.Detail).Infof("%s: no blocks delivered", peer)
 					break
 				}
 				// All was successful, promote the peer
-				if glog.V(logger.Detail) && len(blockPack.blocks) > 0 {
-					glog.Infof("%s: delivered %d blocks", peer, len(blockPack.blocks))
-				}
 				peer.Promote()
 				peer.SetIdle()
+				glog.V(logger.Detail).Infof("%s: delivered %d blocks", peer, len(blockPack.blocks))
 			}
 		case <-ticker.C:
 			// Check for bad peers. Bad peers may indicate a peer not responding