diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index 6163c8e0af03949524891e458c76adced5396c2d..dca3e6ce709a3f3364c11ed139762ec7875ba331 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -7177,7 +7177,9 @@ class LUInstanceShutdown(LogicalUnit):
     node_current = instance.primary_node
     timeout = self.op.timeout
 
-    if not self.op.no_remember:
+    # If the instance is offline we shouldn't mark it as down, as that
+    # resets the offline flag.
+    if not self.op.no_remember and instance.admin_state in INSTANCE_ONLINE:
       self.cfg.MarkInstanceDown(instance.name)
 
     if self.primary_offline: