diff --git a/src/main/java/org/apache/freemarker/onlinetester/services/FreeMarkerService.java b/src/main/java/org/apache/freemarker/onlinetester/services/FreeMarkerService.java
index fbb3cc4..9331761 100644
--- a/src/main/java/org/apache/freemarker/onlinetester/services/FreeMarkerService.java
+++ b/src/main/java/org/apache/freemarker/onlinetester/services/FreeMarkerService.java
@@ -48,9 +48,11 @@
 import freemarker.core.TemplateConfiguration;
 import freemarker.template.AttemptExceptionReporter;
 import freemarker.template.Configuration;
+import freemarker.template.SimpleObjectWrapper;
 import freemarker.template.Template;
 import freemarker.template.TemplateException;
 import freemarker.template.TemplateExceptionHandler;
+import freemarker.template.Version;
 import freemarker.template.utility.StringUtil;
 
 public class FreeMarkerService {
@@ -98,8 +100,10 @@
         threadPoolExecutor.allowCoreThreadTimeOut(true);
         templateExecutor = threadPoolExecutor;
 
-        freeMarkerConfig = new Configuration(Configuration.getVersion());
+        Version latestVersion = Configuration.getVersion();
+        freeMarkerConfig = new Configuration(latestVersion);
         freeMarkerConfig.setNewBuiltinClassResolver(TemplateClassResolver.ALLOWS_NOTHING_RESOLVER);
+        freeMarkerConfig.setObjectWrapper(new SimpleObjectWrapperWithXmlSupport(latestVersion));
         freeMarkerConfig.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
         freeMarkerConfig.setLogTemplateExceptions(false);
         freeMarkerConfig.setAttemptExceptionReporter(new AttemptExceptionReporter() {
diff --git a/src/main/java/org/apache/freemarker/onlinetester/services/SimpleObjectWrapperWithXmlSupport.java b/src/main/java/org/apache/freemarker/onlinetester/services/SimpleObjectWrapperWithXmlSupport.java
new file mode 100644
index 0000000..053793b
--- /dev/null
+++ b/src/main/java/org/apache/freemarker/onlinetester/services/SimpleObjectWrapperWithXmlSupport.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.freemarker.onlinetester.services;
+
+import org.w3c.dom.Node;
+
+import freemarker.template.SimpleObjectWrapper;
+import freemarker.template.TemplateModel;
+import freemarker.template.TemplateModelException;
+import freemarker.template.Version;
+
+public class SimpleObjectWrapperWithXmlSupport extends SimpleObjectWrapper {
+
+    public SimpleObjectWrapperWithXmlSupport(Version incompatibleImprovements) {
+        super(incompatibleImprovements);
+    }
+
+    @Override
+    protected TemplateModel handleUnknownType(Object obj) throws TemplateModelException {
+        if (obj instanceof Node) {
+            return wrapDomNode(obj);
+        }
+        return super.handleUnknownType(obj);
+    }
+}
