diff --git a/torrent.go b/torrent.go
index <HASH>..<HASH> 100644
--- a/torrent.go
+++ b/torrent.go
@@ -982,7 +982,10 @@ func (t *Torrent) getCompletedPieces() (ret bitmap.Bitmap) {
 
 func (t *Torrent) unpendPieces(unpend *bitmap.Bitmap) {
 	t.pendingPieces.Sub(unpend)
-	t.updatePiecePriorities()
+	unpend.IterTyped(func(piece int) (again bool) {
+		t.updatePiecePriority(piece)
+		return true
+	})
 }
 
 func (t *Torrent) pendPieceRange(begin, end int) {
Torrent.unpendPieces: Only update unpended pieces

Updating all pieces at once is no longer faster. (There was an optimization for this a while ago that no longer exists.)