diff --git a/build.xml b/build.xml
index e6c30bd..ee0867d 100644
--- a/build.xml
+++ b/build.xml
@@ -67,7 +67,7 @@
     	   target="${javac.target}"
     	   source="${javac.source}"
     	   classpath="${log4j.jar}"/>
-    	<copy todir="target/classes">
+    	<copy todir="target/classes" overwrite="true">
     	    <fileset dir="src/main/resources"/>
     	</copy>
     </target>
@@ -98,14 +98,14 @@
     	   target="${javac.target}"
     	   source="${javac.source}"
     	   classpath="${log4j.jar}:${junit.jar}:target/classes"/>
-    	<copy todir="target/test-classes">
+    	<copy todir="target/test-classes" overwrite="true">
     		<fileset dir="src/test/resources"/>
     	</copy>
     </target>    
 
 
     <target name="test" depends="test-compile" description="Run unit tests">
-    	<junit printsummary="yes">
+    	<junit printsummary="yes" fork="true" dir="target">
     	    <classpath path="target/test-classes:target/classes:${log4j.jar}"/>
     		<batchtest>
     			<fileset dir="src/test/java/">
diff --git a/src/main/java/org/apache/log4j/plugins/PluginConfigurator.java b/src/main/java/org/apache/log4j/plugins/PluginConfigurator.java
index 0796157..3331dbc 100644
--- a/src/main/java/org/apache/log4j/plugins/PluginConfigurator.java
+++ b/src/main/java/org/apache/log4j/plugins/PluginConfigurator.java
@@ -261,7 +261,7 @@
                 "] which does not implement org.apache.log4j.spi.AppenderAttachable.");
 	    }
 	  } else {
-          parseUnrecognizedElement(instance, appenderElement, props);
+          parseUnrecognizedElement(instance, currentElement, props);
       }
 	}
       }
@@ -890,7 +890,9 @@
 	  parseRoot(currentElement);
 	} else if(tagName.equals(RENDERER_TAG)) {
 	  parseRenderer(currentElement);
-	} else if (!tagName.equals(CATEGORY_FACTORY_TAG)) {
+	} else if (!(tagName.equals(APPENDER_TAG)
+            || tagName.equals(CATEGORY_FACTORY_TAG)
+            || tagName.equals(LOGGER_FACTORY_TAG))) {
         quietParseUnrecognizedElement(repository, currentElement, props);
     }
       }
@@ -1014,7 +1016,7 @@
       public InputSource resolveEntity (String publicId, String systemId) {
         if (systemId.endsWith("log4j.dtd")) {
           Class clazz = getClass();
-          InputStream in = Log4jEntityResolver.class.getResourceAsStream("log4j.dtd");
+          InputStream in = clazz.getResourceAsStream("log4j.dtd");
           if (in == null) {
         LogLog.error("Could not find [log4j.dtd]. Used [" + clazz.getClassLoader()
                  + "] class loader in the search.");
diff --git a/src/main/resources/org/apache/log4j/plugins/log4j.dtd b/src/main/resources/org/apache/log4j/plugins/log4j.dtd
index b20ac1e..9527734 100644
--- a/src/main/resources/org/apache/log4j/plugins/log4j.dtd
+++ b/src/main/resources/org/apache/log4j/plugins/log4j.dtd
@@ -136,14 +136,14 @@
 >
 
 <!ELEMENT triggeringPolicy ((param|filter)*)>
-<!ATTLIST plugin
-  name 		CDATA 	   #REQUIRED
+<!ATTLIST triggeringPolicy
+  name 		CDATA  #IMPLIED
   class 	CDATA  #REQUIRED
 >
 
 <!ELEMENT rollingPolicy (param*)>
-<!ATTLIST plugin
-  name 		CDATA 	   #REQUIRED
+<!ATTLIST rollingPolicy
+  name 		CDATA  #IMPLIED
   class 	CDATA  #REQUIRED
 >
 
