diff --git a/src/ChangeLog b/src/ChangeLog
index c37fb85a..8e1213f1 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,6 +1,15 @@
+2013-03-12  Darshit Shah <darnir@gmail.com>
+
+	* http.c (gethttp): Make wget return FILEBADFILE error and abort if
+	post-file does not exist.
+
+	* http.c (http_loop): Handle FILEBADFILE as a valid err.
+
+	* exits.c (get_status_for_err): Mark FILEBADFILE as an IO error.
+
 2013-02-15  Darshit Shah <darnir@gmail.com>
 
-	* cookies.c (cookie_handle_set_cookie): Set cookie-descard_requested
+	* cookies.c (cookie_handle_set_cookie): Set cookie->discard_requested
 	to true on domain mismatch.
 
 2012-12-20  Tim Ruehsen  <tim.ruehsen@gmx.de>
diff --git a/src/exits.c b/src/exits.c
index e23fc1c9..cea38d5c 100644
--- a/src/exits.c
+++ b/src/exits.c
@@ -58,7 +58,7 @@ get_status_for_err (uerr_t err)
     case RETROK:
       return WGET_EXIT_SUCCESS;
     case FOPENERR: case FOPEN_EXCL_ERR: case FWRITEERR: case WRITEFAILED:
-    case UNLINKERR: case CLOSEFAILED:
+    case UNLINKERR: case CLOSEFAILED: case FILEBADFILE:
       return WGET_EXIT_IO_FAIL;
     case NOCONERROR: case HOSTERR: case CONSOCKERR: case CONERROR:
     case CONSSLERR: case CONIMPOSSIBLE: case FTPRERR: case FTPINVPASV:
diff --git a/src/http.c b/src/http.c
index fdb0d7e4..b393e248 100644
--- a/src/http.c
+++ b/src/http.c
@@ -1865,7 +1865,7 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy,
             {
               logprintf (LOG_NOTQUIET, _("POST data file %s missing: %s\n"),
                          quote (opt.post_file_name), strerror (errno));
-              post_data_size = 0;
+              return FILEBADFILE;
             }
         }
       request_set_header (req, "Content-Length",
@@ -3119,6 +3119,7 @@ Spider mode enabled. Check if remote file exists.\n"));
                      quote (hstat.local_file), strerror (errno));
         case HOSTERR: case CONIMPOSSIBLE: case PROXERR: case AUTHFAILED:
         case SSLINITFAILED: case CONTNOTSUPPORTED: case VERIFCERTERR:
+        case FILEBADFILE:
           /* Fatal errors just return from the function.  */
           ret = err;
           goto exit;