diff --git a/tornado/ioloop.py b/tornado/ioloop.py
index 4189f58..a332100 100644
--- a/tornado/ioloop.py
+++ b/tornado/ioloop.py
@@ -325,7 +325,14 @@
             while self._events:
                 fd, events = self._events.popitem()
                 try:
-                    self._handlers[fd](fd, events)
+                    handler = self._handlers[fd]
+                except KeyError:
+                    logging.error("Handler for fd %s no longer exists, closing",
+                                  fd, exc_info=True)
+                    self.remove_handler(fd)
+                    continue
+                try:
+                    handler(fd, events)
                 except (OSError, IOError), e:
                     if e.args[0] == errno.EPIPE:
                         # Happens when the client closes the connection
@@ -333,10 +340,6 @@
                     else:
                         logging.error("Exception in I/O handler for fd %s",
                                       fd, exc_info=True)
-                except KeyError:
-                    logging.error("Handler for fd %s no longer exists, closing",
-                                  fd, exc_info=True)
-                    self._impl.unregister(fd)
                 except Exception:
                     logging.error("Exception in I/O handler for fd %s",
                                   fd, exc_info=True)
