diff --git a/daemons/ganeti-noded b/daemons/ganeti-noded
index 1367f226ef133fcf33c1acb069265ff9ffcce28c..96a642bd3a26e95eda8f17f3707c42d8229b7768 100755
--- a/daemons/ganeti-noded
+++ b/daemons/ganeti-noded
@@ -310,10 +310,7 @@ class NodeHttpServer(http.server.HttpServer):
 
     """
     path = params[0]
-    einfo = backend.ExportInfo(path)
-    if einfo is None:
-      return einfo
-    return einfo.Dumps()
+    return backend.ExportInfo(path)
 
   @staticmethod
   def perspective_export_list(params):
diff --git a/lib/backend.py b/lib/backend.py
index 2983399162cd2611832f088ca1ab2c673fff7b08..82011a0eea585f235ff0c6d14dba60e62b9c8d40 100644
--- a/lib/backend.py
+++ b/lib/backend.py
@@ -1900,9 +1900,9 @@ def ExportInfo(dest):
 
   if (not config.has_section(constants.INISECT_EXP) or
       not config.has_section(constants.INISECT_INS)):
-    return None
+    _Fail("Export info file doesn't have the required fields")
 
-  return config
+  return True, config.Dumps()
 
 
 def ImportOSIntoInstance(instance, src_node, src_images, cluster_name):
diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index 0394126a0f39017fee85f0515c6c1474b2dc5531..d2d433efac9d403d7f72cf3699c46eaf391df57b 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -4688,11 +4688,12 @@ class LUCreateInstance(LogicalUnit):
 
       _CheckNodeOnline(self, src_node)
       result = self.rpc.call_export_info(src_node, src_path)
-      result.Raise()
-      if not result.data:
-        raise errors.OpPrereqError("No export found in dir %s" % src_path)
+      msg = result.RemoteFailMsg()
+      if msg:
+        raise errors.OpPrereqError("No export or invalid export found in"
+                                   " dir %s: %s" % (src_path, msg))
 
-      export_info = result.data
+      export_info = objects.SerializableConfigParser.Loads(str(result.payload))
       if not export_info.has_section(constants.INISECT_EXP):
         raise errors.ProgrammerError("Corrupted export config")
 
diff --git a/lib/rpc.py b/lib/rpc.py
index 9e50a0ac441f7aabbf355e25ee798abb2d77979a..7d6b266143a62b2b29d7bc7f277190636cbe933f 100644
--- a/lib/rpc.py
+++ b/lib/rpc.py
@@ -974,10 +974,7 @@ class RpcRunner(object):
     This is a single-node call.
 
     """
-    result = self._SingleNodeCall(node, "export_info", [path])
-    if not result.failed and result.data:
-      result.data = objects.SerializableConfigParser.Loads(str(result.data))
-    return result
+    return self._SingleNodeCall(node, "export_info", [path])
 
   def call_instance_os_import(self, node, inst, src_node, src_images,
                               cluster_name):