diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index f5566775baaca189ed08e8768a3ef13aa6606d5d..cb3bb3122dc7c70fbcc462b513c4c758c830d618 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -2464,6 +2464,10 @@ class LUSetNodeParams(LogicalUnit):
           node.master_candidate = False
           changed_mc = True
           result.append(("master_candidate", "auto-demotion due to drain"))
+          rrc = self.rpc.call_node_demote_from_mc(node.name)
+          msg = rrc.RemoteFailMsg()
+          if msg:
+            self.LogWarning("Node failed to demote itself: %s" % msg)
         if node.offline:
           node.offline = False
           result.append(("offline", "clear offline status due to drain"))