diff --git a/oslo/messaging/_drivers/amqpdriver.py b/oslo/messaging/_drivers/amqpdriver.py
index 2f1b33ef7..f9fc768b3 100644
--- a/oslo/messaging/_drivers/amqpdriver.py
+++ b/oslo/messaging/_drivers/amqpdriver.py
@@ -65,11 +65,6 @@ class AMQPIncomingMessage(base.IncomingMessage):
             self._send_reply(conn, reply, failure)
             self._send_reply(conn, ending=True)
 
-    def done(self):
-        LOG.info("done")
-        # FIXME(markmc): I'm not sure we need this method ... we've already
-        # acked the message at this point
-
 
 class AMQPListener(base.Listener):
 
diff --git a/oslo/messaging/_drivers/base.py b/oslo/messaging/_drivers/base.py
index 40b938bff..2b7b8e028 100644
--- a/oslo/messaging/_drivers/base.py
+++ b/oslo/messaging/_drivers/base.py
@@ -36,10 +36,6 @@ class IncomingMessage(object):
     def reply(self, reply=None, failure=None):
         "Send a reply or failure back to the client."
 
-    @abc.abstractmethod
-    def done(self):
-        "The message has been dispatched and replied to."
-
 
 class Listener(object):
 
diff --git a/oslo/messaging/_drivers/impl_fake.py b/oslo/messaging/_drivers/impl_fake.py
index f6defc092..4be1d8d6c 100644
--- a/oslo/messaging/_drivers/impl_fake.py
+++ b/oslo/messaging/_drivers/impl_fake.py
@@ -44,9 +44,6 @@ class FakeIncomingMessage(base.IncomingMessage):
         if self._reply_q:
             self._reply_q.put(reply)
 
-    def done(self):
-        pass
-
 
 class FakeListener(base.Listener):
 
diff --git a/oslo/messaging/_executors/base.py b/oslo/messaging/_executors/base.py
index e8d801ef9..62101a759 100644
--- a/oslo/messaging/_executors/base.py
+++ b/oslo/messaging/_executors/base.py
@@ -39,8 +39,6 @@ class ExecutorBase(object):
             _LOG.error("Failed to process message... skipping it.",
                        exc_info=exc_info)
             incoming.reply(failure=exc_info)
-        finally:
-            incoming.done()
 
     @abc.abstractmethod
     def start(self):