diff --git a/servers/rest_server/includes/rest_server.views.inc b/servers/rest_server/includes/rest_server.views.inc
index 8efa8e8..41f7371 100644
--- a/servers/rest_server/includes/rest_server.views.inc
+++ b/servers/rest_server/includes/rest_server.views.inc
@@ -74,11 +74,22 @@ class RESTServerViewBuiltIn extends RESTServerView {
 
   private function render_xml($data) {
     $doc = new DOMDocument('1.0', 'utf-8');
-    $root = $doc->createElement('result');
-    $doc->appendChild($root);
-
-    $this->xml_recurse($doc, $root, $data);
-
+    //If the data is already in an XML object, use it
+    //and send it as constructed.
+    if (is_object($data) and $data instanceof SimpleXMLElement) {
+      $data = dom_import_simplexml($data);
+    }
+    if (is_object($data) and $data instanceof DOMNode) {
+      //recursively import the whole node
+      $root = $doc->importNode($data, TRUE);
+      $doc->appendChild($root);      
+    }
+    else {
+      //If some other type of data, process it here
+      $root = $doc->createElement('result');
+      $doc->appendChild($root);  
+      $this->xml_recurse($doc, $root, $data);
+    }
     return $doc->saveXML();
   }
 
