diff --git a/maven-invoker/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java b/maven-invoker/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java
index 49723c1..ce00d15 100644
--- a/maven-invoker/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java
+++ b/maven-invoker/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java
@@ -603,25 +603,6 @@
         return mavenExecutable;
     }
 
-    /**
-     * Wraps a path with quotes to handle paths with spaces. If no spaces are found, the original string is returned.
-     * 
-     * @param path string to wrap if containing spaces
-     * @return quote wrapped string
-     * @deprecated Quoting of command line arguments should be left to the Commandline from plexus-utils.
-     */
-    public String wrapStringWithQuotes( String path )
-    {
-        if ( path.indexOf( " " ) > -1 )
-        {
-            return "\"" + path + "\"";
-        }
-        else
-        {
-            return path;
-        }
-    }
-
     private Properties getSystemEnvVars()
         throws IOException
     {
diff --git a/maven-invoker/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java b/maven-invoker/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java
index ee3a000..613579c 100644
--- a/maven-invoker/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java
+++ b/maven-invoker/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java
@@ -21,8 +21,6 @@
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotSame;
-import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
@@ -55,21 +53,6 @@
     private Properties sysProps;
 
     @Test
-    public void testWrapwithQuotes()
-    {
-        TestCommandLineBuilder tcb = new TestCommandLineBuilder();
-        String test = "noSpacesInHere";
-
-        assertSame( test, tcb.wrapStringWithQuotes( test ) );
-        assertEquals( "noSpacesInHere", tcb.wrapStringWithQuotes( test ) );
-
-        test = "bunch of spaces in here";
-        assertNotSame( test, tcb.wrapStringWithQuotes( test ) );
-        assertEquals( "\"bunch of spaces in here\"", tcb.wrapStringWithQuotes( test ) );
-
-    }
-
-    @Test
     public void testShouldFailToSetLocalRepoLocationGloballyWhenItIsAFile()
         throws IOException
     {
