diff --git a/intake/cli/server/server.py b/intake/cli/server/server.py
index <HASH>..<HASH> 100644
--- a/intake/cli/server/server.py
+++ b/intake/cli/server/server.py
@@ -130,7 +130,8 @@ class SourceCache(object):
     def remove_idle(self, idle_secs):
         threshold = time.time() - idle_secs
 
-        for uuid, record in self._sources.items().copy():
+        # Make a copy of the items so we can mutate the dictionary
+        for uuid, record in list(self._sources.items()):
             if record['last_time'] < threshold:
                 del self._sources[uuid]
Dict proxy does not have copy() method