Index: src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
===================================================================
--- src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java	(revision 405397)
+++ src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java	(working copy)
@@ -84,6 +84,18 @@
 
     private boolean interactive = true;
 
+    public Wagon getConfiguredWagon( Repository repository )
+        throws UnsupportedProtocolException, WagonConfigurationException
+    {
+        String protocol = repository.getProtocol();
+
+        Wagon wagon = getWagon( protocol );
+
+        configureWagon( wagon, repository.getId() );
+
+        return wagon;
+    }
+
     public Wagon getWagon( String protocol )
         throws UnsupportedProtocolException
     {
@@ -710,9 +722,12 @@
     private void configureWagon( Wagon wagon, ArtifactRepository repository )
         throws WagonConfigurationException
     {
+       configureWagon( wagon, repository.getId() );
+    }
 
-        final String repositoryId = repository.getId();
-
+    private void configureWagon( Wagon wagon, String repositoryId )
+        throws WagonConfigurationException
+    {
         if ( serverConfigurationMap.containsKey( repositoryId ) )
         {
             ComponentConfigurator componentConfigurator = null;
Index: src/main/java/org/apache/maven/artifact/manager/WagonManager.java
===================================================================
--- src/main/java/org/apache/maven/artifact/manager/WagonManager.java	(revision 405397)
+++ src/main/java/org/apache/maven/artifact/manager/WagonManager.java	(working copy)
@@ -26,6 +26,7 @@
 import org.apache.maven.wagon.authentication.AuthenticationInfo;
 import org.apache.maven.wagon.events.TransferListener;
 import org.apache.maven.wagon.proxy.ProxyInfo;
+import org.apache.maven.wagon.repository.Repository;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 
 import java.io.File;
@@ -39,9 +40,15 @@
 {
     String ROLE = WagonManager.class.getName();
 
+    /**
+     * @deprecated prone to errors. use {@link #getConfiguredWagon} instead.
+     */
     Wagon getWagon( String protocol )
         throws UnsupportedProtocolException;
 
+    Wagon getConfiguredWagon( Repository repository )
+        throws UnsupportedProtocolException, WagonConfigurationException;
+
     void getArtifact( Artifact artifact, List remoteRepositories )
         throws TransferFailedException, ResourceDoesNotExistException;
 


