diff --git a/src/main/java/org/apache/maven/shared/filtering/FilteringUtils.java b/src/main/java/org/apache/maven/shared/filtering/FilteringUtils.java
index 18f56eb..979986f 100644
--- a/src/main/java/org/apache/maven/shared/filtering/FilteringUtils.java
+++ b/src/main/java/org/apache/maven/shared/filtering/FilteringUtils.java
@@ -19,6 +19,7 @@
  * under the License.
  */
 
+import java.util.regex.Pattern;
 import org.codehaus.plexus.util.StringUtils;
 
 /**
@@ -27,6 +28,9 @@
  */
 public final class FilteringUtils
 {
+    private static final String WINDOWS_PATH_PATTERN = "^[a-zA-Z]:\\\\(.*)";
+
+    private static final Pattern PATTERN = Pattern.compile( WINDOWS_PATH_PATTERN) ;
 
     /**
      * 
@@ -40,7 +44,7 @@
     // How do we distinguish a relative windows path from some other value that happens to contain backslashes??
     public static final String escapeWindowsPath( String val )
     {
-        if ( !StringUtils.isEmpty( val ) && val.indexOf( ":\\" ) == 1 )
+        if ( !StringUtils.isEmpty( val ) && PATTERN.matcher( val ).matches() )
         {
             // Adapted from StringUtils.replace in plexus-utils to accommodate pre-escaped backslashes.
             StringBuffer buf = new StringBuffer( val.length() );
diff --git a/src/test/java/org/apache/maven/shared/filtering/FilteringUtilsTest.java b/src/test/java/org/apache/maven/shared/filtering/FilteringUtilsTest.java
index 200f43f..6d575a9 100644
--- a/src/test/java/org/apache/maven/shared/filtering/FilteringUtilsTest.java
+++ b/src/test/java/org/apache/maven/shared/filtering/FilteringUtilsTest.java
@@ -35,6 +35,16 @@
         assertEquals( "C:\\\\Users\\\\Administrator", FilteringUtils.escapeWindowsPath( "C:\\Users\\Administrator" ) );
     }
 
+    public void testEscapeWindowsPathMissingDriveLetter()
+    {
+        assertEquals( ":\\Users\\Administrator", FilteringUtils.escapeWindowsPath( ":\\Users\\Administrator" ) );
+    }
+
+    public void testEscapeWindowsPathInvalidDriveLetter()
+    {
+        assertEquals( "4:\\Users\\Administrator", FilteringUtils.escapeWindowsPath( "4:\\Users\\Administrator" ) );
+    }
+
     // This doesn't work, see MSHARED-121
     /*
     public void testEscapeWindowsPathStartingWithDrivelessAbsolutePath()
