Index: src/main/java/org/apache/maven/wagon/providers/ssh/external/ScpExternalWagon.java
===================================================================
--- src/main/java/org/apache/maven/wagon/providers/ssh/external/ScpExternalWagon.java	(Revision 630522)
+++ src/main/java/org/apache/maven/wagon/providers/ssh/external/ScpExternalWagon.java	(Arbeitskopie)
@@ -96,6 +96,19 @@
         // nothing to disconnect
     }
 
+    /**
+     * @return The hostname of the remote server prefixed with the username,
+     *         which comes either from the repository URL or from the authenticationInfo.
+     */
+    private String buildRemoteHost() {
+    	
+    	 String username = this.getRepository().getUsername();
+         if (username == null)
+         	username = authenticationInfo.getUserName();
+         	
+         return username + "@" + getRepository().getHost();
+    }
+    
     public Streams executeCommand( String command, boolean ignoreFailures )
         throws CommandExecutionException
     {
@@ -120,7 +133,8 @@
         {
             cl.createArgument().setLine( sshArgs );
         }
-        String remoteHost = authenticationInfo.getUserName() + "@" + getRepository().getHost();
+        
+        String remoteHost = this.buildRemoteHost();
 
         cl.createArgument().setValue( remoteHost );
 
@@ -207,7 +221,7 @@
             cl.createArgument().setLine( scpArgs );
         }
         String qualifiedRemoteFile =
-            authenticationInfo.getUserName() + "@" + getRepository().getHost() + ":" + remoteFile;
+            this.buildRemoteHost() + ":" + remoteFile;
         if ( put )
         {
             cl.createArgument().setValue( localFile.getName() );

