diff --git a/build.xml b/build.xml
index cf6146e..11cb2cb 100644
--- a/build.xml
+++ b/build.xml
@@ -82,8 +82,8 @@
     </tstamp>
     <property name="Project"            value="Apache Batik"/>
     <property name="project"            value="batik"/>
-    <property name="year"               value="2008"/>
-    <property name="version"            value="1.7"/>
+    <property name="year"               value="2015"/>
+    <property name="version"            value="1.7.1"/>
     <property name="revisionType"       value=""/>
     <property name="revisionNumber"     value=""/>
     <property name="completeVersion"    value="${version}${revisionType}${revisionNumber}"/>
diff --git a/sources/org/apache/batik/dom/util/SAXDocumentFactory.java b/sources/org/apache/batik/dom/util/SAXDocumentFactory.java
index 2512905..b8324e1 100644
--- a/sources/org/apache/batik/dom/util/SAXDocumentFactory.java
+++ b/sources/org/apache/batik/dom/util/SAXDocumentFactory.java
@@ -30,25 +30,25 @@
 import javax.xml.parsers.SAXParser;
 import javax.xml.parsers.SAXParserFactory;
 
-import org.apache.batik.util.HaltingThread;
-import org.apache.batik.util.XMLConstants;
-
+import org.w3c.dom.DOMImplementation;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
 import org.xml.sax.Attributes;
 import org.xml.sax.ErrorHandler;
 import org.xml.sax.InputSource;
 import org.xml.sax.Locator;
 import org.xml.sax.SAXException;
 import org.xml.sax.SAXNotRecognizedException;
+import org.xml.sax.SAXNotSupportedException;
 import org.xml.sax.SAXParseException;
 import org.xml.sax.XMLReader;
 import org.xml.sax.ext.LexicalHandler;
 import org.xml.sax.helpers.DefaultHandler;
 import org.xml.sax.helpers.XMLReaderFactory;
 
-import org.w3c.dom.DOMImplementation;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
+import org.apache.batik.util.HaltingThread;
+import org.apache.batik.util.XMLConstants;
 
 /**
  * This class contains methods for creating Document instances
@@ -391,6 +391,16 @@
     static SAXParserFactory saxFactory;
     static {
         saxFactory = SAXParserFactory.newInstance();
+        try {
+            saxFactory.setFeature("http://xml.org/sax/features/external-general-entities", false);
+            saxFactory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
+        } catch (SAXNotRecognizedException e) {
+            e.printStackTrace();
+        } catch (SAXNotSupportedException e) {
+            e.printStackTrace();
+        } catch (ParserConfigurationException e) {
+            e.printStackTrace();
+        }
     }
 
     /**
