Index: lib/ssh.c
===================================================================
RCS file: /cvsroot/curl/curl/lib/ssh.c,v
retrieving revision 1.58
diff -u -r1.58 ssh.c
--- lib/ssh.c	27 Jun 2007 20:15:48 -0000	1.58
+++ lib/ssh.c	4 Jul 2007 11:57:47 -0000
@@ -1125,7 +1125,7 @@
 
   if (conn->data->set.upload) {
     if(conn->data->set.infilesize < 0) {
-      failf(conn->data, "SCP requries a known file size for upload");
+      failf(conn->data, "SCP requires a known file size for upload");
       return CURLE_UPLOAD_FAILED;
     }
     /*
@@ -1142,7 +1142,12 @@
       if (!scp->ssh_channel &&
           (libssh2_session_last_errno(scp->ssh_session) !=
            LIBSSH2_ERROR_EAGAIN)) {
-        return CURLE_FAILED_INIT;
+        int err;
+        char *err_msg;
+        err = libssh2_session_error_to_CURLE(
+          libssh2_session_last_error(scp->ssh_session, &err_msg, NULL, 0));
+        failf(conn->data, "%s", err_msg);
+        return err;
       }
     } while (!scp->ssh_channel);
 #else /* !(LIBSSH2_APINO >= 200706012030) */
