diff --git a/pom.xml b/pom.xml
index 7dd62c7..51bbc77 100644
--- a/pom.xml
+++ b/pom.xml
@@ -122,9 +122,6 @@
                   <includes>
                     <include>**/build.log</include>
                   </includes>
-                  <excludes>
-                    <exclude>**/autoskip/skip-when-patch-tracking-file-present/target/**</exclude>
-                  </excludes>
                 </fileset>
               </filesets>
             </configuration>
diff --git a/src/it/projects/autoskip/skip-when-patch-tracking-file-present/pom.xml b/src/it/projects/autoskip/skip-when-patch-tracking-file-present/pom.xml
index 7db5b4e..4256738 100644
--- a/src/it/projects/autoskip/skip-when-patch-tracking-file-present/pom.xml
+++ b/src/it/projects/autoskip/skip-when-patch-tracking-file-present/pom.xml
@@ -45,9 +45,10 @@
         <artifactId>maven-patch-plugin</artifactId>
         
         <configuration>
+          <targetDirectory>${basedir}</targetDirectory>
+          <patchTrackingFile>${basedir}/src/main/patches/patches-applied.txt</patchTrackingFile>
           <patches>
             <patch>first.patch</patch>
-            <patch>second.patch</patch>
           </patches>
         </configuration>
 
diff --git a/src/it/projects/autoskip/skip-when-patch-tracking-file-present/src/main/patches/patches-applied.txt b/src/it/projects/autoskip/skip-when-patch-tracking-file-present/src/main/patches/patches-applied.txt
new file mode 100644
index 0000000..863021f
--- /dev/null
+++ b/src/it/projects/autoskip/skip-when-patch-tracking-file-present/src/main/patches/patches-applied.txt
@@ -0,0 +1 @@
+first.patch
diff --git a/src/it/projects/autoskip/skip-when-patch-tracking-file-present/src/main/patches/second.patch b/src/it/projects/autoskip/skip-when-patch-tracking-file-present/src/main/patches/second.patch
deleted file mode 100644
index d042bd5..0000000
--- a/src/it/projects/autoskip/skip-when-patch-tracking-file-present/src/main/patches/second.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-#  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.
-#
-Index: target/test2.txt
-===================================================================
---- target/test2.txt	(revision 0)
-+++ target/test2.txt	(revision 0)
-@@ -0,0 +1 @@
-+This is a test.
-\ No newline at end of file
-
diff --git a/src/it/projects/autoskip/skip-when-patch-tracking-file-present/verify.bsh b/src/it/projects/autoskip/skip-when-patch-tracking-file-present/verify.bsh
index 10f29c3..b009d80 100644
--- a/src/it/projects/autoskip/skip-when-patch-tracking-file-present/verify.bsh
+++ b/src/it/projects/autoskip/skip-when-patch-tracking-file-present/verify.bsh
@@ -18,9 +18,21 @@
 */
 
 import java.io.*;
+import java.util.*;
 
-File testFile = new File( basedir, "target/test2.txt" );
+try
+{
+    File testFile = new File( basedir, "target/test.txt" );
+    if ( testFile.exists() )
+    {
+        System.err.println( "Patch application has not been skipped, file was created: " + testFile );
+        return false;
+    }
+}
+catch( Throwable t )
+{
+    t.printStackTrace();
+    return false;
+}
 
-System.out.println( "Does " + testFile + " exist? " + testFile.exists() );
-
-return !testFile.exists();
+return true;
