--- rust-tower-0.4.13.orig/Cargo.toml
+++ rust-tower-0.4.13/Cargo.toml
@@ -67,7 +67,7 @@ default-features = false
 #default-features = false
 
 [dependencies.indexmap]
-version = "1.0.2"
+version = "2"
 optional = true
 
 [dependencies.pin-project]
--- rust-tower-0.4.13.orig/src/ready_cache/cache.rs
+++ rust-tower-0.4.13/src/ready_cache/cache.rs
@@ -5,6 +5,7 @@ use futures_core::Stream;
 use futures_util::{stream::FuturesUnordered, task::AtomicWaker};
 pub use indexmap::Equivalent;
 use indexmap::IndexMap;
+use indexmap::map::MutableKeys;
 use std::fmt;
 use std::future::Future;
 use std::hash::Hash;
@@ -194,7 +195,7 @@ where
 
     /// Obtains a mutable reference to a service in the ready set by index.
     pub fn get_ready_index_mut(&mut self, idx: usize) -> Option<(&mut K, &mut S)> {
-        self.ready.get_index_mut(idx).map(|(k, v)| (k, &mut v.0))
+        self.ready.get_index_mut2(idx).map(|(k, v)| (k, &mut v.0))
     }
 
     /// Evicts an item from the cache.
