Index: ftp.c
===================================================================
RCS file: /cvsroot/curl/curl/lib/ftp.c,v
retrieving revision 1.500
diff -u -r1.500 ftp.c
--- ftp.c	17 Feb 2009 09:08:39 -0000	1.500
+++ ftp.c	17 Feb 2009 17:07:27 -0000
@@ -2427,7 +2427,8 @@
     }
     else {
       failf(data, "RETR response: %03d", ftpcode);
-      return CURLE_FTP_COULDNT_RETR_FILE;
+      return ftpcode == 550? CURLE_REMOTE_FILE_NOT_FOUND:
+                             CURLE_FTP_COULDNT_RETR_FILE;
     }
   }
 
@@ -3159,6 +3160,7 @@
   case CURLE_UPLOAD_FAILED:
   case CURLE_REMOTE_ACCESS_DENIED:
   case CURLE_FILESIZE_EXCEEDED:
+  case CURLE_REMOTE_FILE_NOT_FOUND:
     /* the connection stays alive fine even though this happened */
     /* fall-through */
   case CURLE_OK: /* doesn't affect the control connection's status */

