diff --git a/src/render.js b/src/render.js
index <HASH>..<HASH> 100644
--- a/src/render.js
+++ b/src/render.js
@@ -6,9 +6,15 @@ module.exports = function render() {
   if (!mapExists) return cleanup();
 
   var mode = store.ctx.events.currentModeName();
-  store.ctx.ui.queueMapClasses({
-    mode: mode
-  });
+
+  // If we were in direct select mode and our selected feature no longer exists
+  // (because it was deleted), we need to get out of that mode.
+  if (mode === Constants.modes.DIRECT_SELECT && !store.get(store.getSelectedIds()[0])) {
+    // The mode change should cause a re-render
+    return store.ctx.events.changeMode(Constants.modes.SIMPLE_SELECT);
+  }
+
+  store.ctx.ui.queueMapClasses({ mode });
 
   var newHotIds = [];
   var newColdIds = [];
Leave direct_select when feature is deleted