diff --git a/lib/rpc.py b/lib/rpc.py
index 461c1c86d4471951e0748a791a8ebd49b568fea7..12791fe2413dab5fc7fb9da2a154a5c2c57e46ab 100644
--- a/lib/rpc.py
+++ b/lib/rpc.py
@@ -104,13 +104,17 @@ class RpcResult(object):
     if offline:
       self.failed = True
       self.error = "Node is marked offline"
-      self.data = None
+      self.data = self.payload = None
     elif failed:
       self.error = data
-      self.data = None
+      self.data = self.payload = None
     else:
       self.data = data
       self.error = None
+      if isinstance(data, (tuple, list)) and len(data) == 2:
+        self.payload = data[1]
+      else:
+        self.payload = None
 
   def Raise(self):
     """If the result has failed, raise an OpExecError.