diff --git a/src/torrent.cpp b/src/torrent.cpp index 3ef7da6f8..744b9d14a 100644 --- a/src/torrent.cpp +++ b/src/torrent.cpp @@ -3648,7 +3648,8 @@ namespace libtorrent { using std::swap; swap(m_trackers[index], m_trackers[index-1]); - if (m_last_working_tracker == index) ++m_last_working_tracker; + if (m_last_working_tracker == index) --m_last_working_tracker; + else if (m_last_working_tracker == index - 1) ++m_last_working_tracker; --index; } return index; @@ -3666,7 +3667,8 @@ namespace libtorrent { using std::swap; swap(m_trackers[index], m_trackers[index + 1]); - if (m_last_working_tracker == index) --m_last_working_tracker; + if (m_last_working_tracker == index) ++m_last_working_tracker; + else if (m_last_working_tracker == index + 1) --m_last_working_tracker; ++index; } return index;