wip
diff --git a/archetype-common/pom.xml b/archetype-common/pom.xml
index bfaccc5..6334208 100644
--- a/archetype-common/pom.xml
+++ b/archetype-common/pom.xml
@@ -130,10 +130,6 @@
       <artifactId>plexus-velocity</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.velocity</groupId>
-      <artifactId>velocity</artifactId>
-    </dependency>
-    <dependency>
       <groupId>org.apache.maven.wagon</groupId>
       <artifactId>wagon-provider-api</artifactId>
     </dependency>
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java b/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java
index 3f5095b..a8617a8 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java
@@ -62,6 +62,8 @@
 import org.apache.velocity.VelocityContext;
 import org.apache.velocity.app.Velocity;
 import org.apache.velocity.context.Context;
+import org.apache.velocity.exception.ParseErrorException;
+import org.apache.velocity.exception.ResourceNotFoundException;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
@@ -698,8 +700,8 @@
 
         String localTemplateFileName = templateFileName.replace('/', File.separatorChar);
         if (!templateFileName.equals(localTemplateFileName)
-                && !velocity.getEngine().templateExists(templateFileName)
-                && velocity.getEngine().templateExists(localTemplateFileName)) {
+                && !templateExists(templateFileName)
+                && templateExists(localTemplateFileName)) {
             templateFileName = localTemplateFileName;
         }
 
@@ -746,6 +748,15 @@
         return true;
     }
 
+    private boolean templateExists(String templateName) {
+        try {
+            velocity.getEngine().getTemplate(templateName);
+            return true;
+        } catch (ResourceNotFoundException | ParseErrorException e) {
+            return false;
+        }
+    }
+
     private void processTemplates(
             String packageName,
             File outputDirectoryFile,
diff --git a/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java b/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java
index 0f08962..8493d59 100644
--- a/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java
+++ b/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java
@@ -151,7 +151,10 @@
 
             velocity.getEngine()
                     .mergeTemplate(
-                            OldArchetype.ARCHETYPE_RESOURCES + "/" + OldArchetype.ARCHETYPE_POM, context, writer);
+                            OldArchetype.ARCHETYPE_RESOURCES + "/" + OldArchetype.ARCHETYPE_POM,
+                            "UTF-8",
+                            context,
+                            writer);
         } finally {
             Thread.currentThread().setContextClassLoader(old);
         }
diff --git a/maven-archetype-plugin/pom.xml b/maven-archetype-plugin/pom.xml
index ff14be4..67e5efc 100644
--- a/maven-archetype-plugin/pom.xml
+++ b/maven-archetype-plugin/pom.xml
@@ -145,10 +145,6 @@
       <artifactId>plexus-velocity</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.velocity</groupId>
-      <artifactId>velocity</artifactId>
-    </dependency>
-    <dependency>
       <groupId>commons-collections</groupId>
       <artifactId>commons-collections</artifactId>
     </dependency>
diff --git a/pom.xml b/pom.xml
index 8ddfa2f..4c04d47 100644
--- a/pom.xml
+++ b/pom.xml
@@ -174,20 +174,6 @@
         <groupId>org.codehaus.plexus</groupId>
         <artifactId>plexus-velocity</artifactId>
         <version>2.1.0</version>
-        <exclusions>
-          <exclusion>
-            <groupId>velocity</groupId>
-            <artifactId>velocity</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>velocity</groupId>
-            <artifactId>velocity-api</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.codehaus.plexus</groupId>
-            <artifactId>plexus-container-default</artifactId>
-          </exclusion>
-        </exclusions>
       </dependency>
       <dependency>
         <groupId>org.jdom</groupId>
@@ -195,11 +181,6 @@
         <version>2.0.6.1</version>
       </dependency>
       <dependency>
-        <groupId>org.apache.velocity</groupId>
-        <artifactId>velocity</artifactId>
-        <version>1.7</version>
-      </dependency>
-      <dependency>
         <groupId>commons-collections</groupId>
         <artifactId>commons-collections</artifactId>
         <version>3.2.2</version>
@@ -212,7 +193,7 @@
       <dependency>
         <groupId>org.apache.maven.plugin-testing</groupId>
         <artifactId>maven-plugin-testing-harness</artifactId>
-        <version>2.1</version>
+        <version>3.3.0</version>
       </dependency>
       <dependency>
         <groupId>org.apache.maven.wagon</groupId>