Index: src/download/download_wrapper.cc
===================================================================
--- src/download/download_wrapper.cc	(revision 612)
+++ src/download/download_wrapper.cc	(working copy)
@@ -454,6 +454,9 @@
 
 void
 DownloadWrapper::receive_update_priorities() {
+  if (m_main.chunk_selector()->empty())
+    return;
+
   m_main.chunk_selector()->high_priority()->clear();
   m_main.chunk_selector()->normal_priority()->clear();
 
Index: src/download/chunk_selector.cc
===================================================================
--- src/download/chunk_selector.cc	(revision 612)
+++ src/download/chunk_selector.cc	(working copy)
@@ -66,6 +66,9 @@
 // modified.
 void
 ChunkSelector::update_priorities() {
+  if (empty())
+    return;
+
   if (m_position == invalid_chunk)
     m_position = std::rand() % size();
 
@@ -151,7 +154,7 @@
 inline uint32_t
 ChunkSelector::search_range(const BitField* bf, uint32_t first, uint32_t last) {
   if (first >= last || last > size())
-    throw internal_error("ChunkSelector::find_range(...) received an invalid range.");
+    throw internal_error("ChunkSelector::search_range(...) received an invalid range.");
 
   BitField::const_iterator local  = m_bitfield.begin() + first / 8;
   BitField::const_iterator source = bf->begin() + first / 8;
Index: src/download/chunk_selector.h
===================================================================
--- src/download/chunk_selector.h	(revision 610)
+++ src/download/chunk_selector.h	(working copy)
@@ -61,6 +61,7 @@
 
   static const uint32_t invalid_chunk = ~(uint32_t)0;
 
+  bool                empty() const                 { return size() == 0; }
   uint32_t            size() const                  { return m_bitfield.size_bits(); }
 
   const BitField*     bitfield()                    { return &m_bitfield; }

