diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index 24cc95a12118d52ad8b1553b7f1aab708ae9700d..e3fb2292bd57521cf5351621f41f0b1d58f0fb0b 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -4108,6 +4108,19 @@ class LUSetNodeParams(LogicalUnit):
 
     self.new_role = new_role
 
+    if old_role == self._ROLE_OFFLINE and new_role != old_role:
+      # Trying to transition out of offline status
+      result = self.rpc.call_version([node.name])[node.name]
+      if result.fail_msg:
+        raise errors.OpPrereqError("Node %s is being de-offlined but fails"
+                                   " to report its version: %s" %
+                                   (node.name, result.fail_msg),
+                                   errors.ECODE_STATE)
+      else:
+        self.LogWarning("Transitioning node from offline to online state"
+                        " without using re-add. Please make sure the node"
+                        " is healthy!")
+
   def Exec(self, feedback_fn):
     """Modifies a node.