diff --git a/kafka/coordinator/base.py b/kafka/coordinator/base.py
index <HASH>..<HASH> 100644
--- a/kafka/coordinator/base.py
+++ b/kafka/coordinator/base.py
@@ -314,6 +314,10 @@ class BaseCoordinator(object):
                     cause = self._heartbeat_thread.failed
                     self._heartbeat_thread = None
                     raise cause  # pylint: disable-msg=raising-bad-type
+
+                # Awake the heartbeat thread if needed
+                if self.heartbeat.should_heartbeat():
+                    self._lock.notify()
                 self.heartbeat.poll()
 
     def time_to_next_heartbeat(self):
KAFKA-<I>; Awake the heartbeat thread when timetoNextHeartbeat is equal to 0 (#<I>)