diff --git a/src/main.c b/src/main.c
index add63a1..2f8d5e6 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1958,10 +1958,11 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
         break;
       case 'H': /* --remote-header-name */
         if (config->include_headers) {
-          warnf(config, "--include and --remote-header-name cannot be combined.\n");
+          warnf(config,
+                "--include and --remote-header-name cannot be combined.\n");
           return PARAM_BAD_USE;
         }
-        config->content_disposition = toggle?TRUE:FALSE;
+        config->content_disposition = toggle;
         break;
       case 'i': /* --limit-rate */
         {
@@ -3330,9 +3331,10 @@ static size_t my_fwrite(void *buffer, size_t sz, size_t nmemb, void *stream)
   struct Configurable *config = out->config;
 
   if(!out->stream) {
+    const size_t rv = (sz * nmemb) ? 1 : 0;
     if (!out->filename) {
-        warnf(config, "Remote filename has no length!\n");
-        return (0 == (sz * nmemb)) ? 1 : 0; /* Failure */
+      warnf(config, "Remote filename has no length!\n");
+      return rv; /* Failure */
     }
 
     if (config->content_disposition) {
@@ -3340,15 +3342,17 @@ static size_t my_fwrite(void *buffer, size_t sz, size_t nmemb, void *stream)
       FILE* f = fopen(out->filename, "r");
       if (f) {
         fclose(f);
-        warnf(config, "Refusing to overwrite %s: %s\n", out->filename, strerror(EEXIST));
-        return (0 == (sz * nmemb)) ? 1 : 0; /* Failure */
+        warnf(config, "Refusing to overwrite %s: %s\n", out->filename,
+              strerror(EEXIST));
+        return rv; /* Failure */
       }
     }
 
     /* open file for writing */
     out->stream=fopen(out->filename, "wb");
     if(!out->stream) {
-      warnf(config, "Failed creating %s: %s\n", out->filename, strerror(errno));
+      warnf(config, "Failed to create the file %s: %s\n", out->filename,
+            strerror(errno));
 
       /*
        * Once that libcurl has called back my_fwrite() the returned value
@@ -4091,12 +4095,15 @@ parse_filename(char *ptr, int len)
   
   p = copy;
   if (*p == '\'' || *p == '"') {
+    /* FIXME: deserves a comment */
     quote = *p;
     p++;
   }
 
+  /* FIXME: are we ready for more than one '/'? - possible attack */
   q = strrchr(copy, '/');
   if (q) {
+    /* FIXME: deserves a comment */
     p=q+1;
     if (!*p) {
       free(copy);
@@ -4117,14 +4124,16 @@ parse_filename(char *ptr, int len)
 static size_t
 header_callback(void *ptr, size_t size, size_t nmemb, void *stream)
 {
-  struct OutStruct* outs = stream;
+  struct OutStruct* outs = (struct OutStruct*)stream;
+  const char* str = (char*)ptr;
+  const size_t cb = size*nmemb;
 
-  if (size*nmemb > 20 && curlx_strnequal(ptr, "Content-disposition:", 20)) {
-    char *p = (char*)ptr + 20;
+  if (cb > 20 && curlx_strnequal(str, "Content-disposition:", 20)) {
+    char *p = str + 20;
     while (1) {
       /* encoded filenames (*=) are not supported */
       static const char *needle = "filename="; 
-      char *filename;
+      const char *filename;
       int i;
 
       while (*p && !isalpha(*p))
@@ -4134,9 +4143,13 @@ header_callback(void *ptr, size_t size, size_t nmemb, void *stream)
 
       for (i=0; i<9 && p[i]==needle[i]; i++);
       if (i<9)
+        /* FIXME: this way it simply can't take
+         * "Content-disposition: inline; filename=\"bz553638.patch\"\r\n"
+         * since it bails out here
+         */
         break;
       p+=9;
-      filename = parse_filename(p, size*nmemb - (p - (char*)ptr));
+      filename = parse_filename(p, cb - (p - str));
       if (filename) {
         outs->filename = filename;
         break;
@@ -4144,7 +4157,7 @@ header_callback(void *ptr, size_t size, size_t nmemb, void *stream)
     }
   }
 
-  return size*nmemb;
+  return cb;
 }
 
 static int
@@ -5146,8 +5159,8 @@ operate(struct Configurable *config, int argc, argv_item_t argv[])
 
         if ((urlnode->flags & GETOUT_USEREMOTE)
             && config->content_disposition) {
-            my_setopt(curl, CURLOPT_HEADERFUNCTION, header_callback);
-            my_setopt(curl, CURLOPT_HEADERDATA, &outs);
+          my_setopt(curl, CURLOPT_HEADERFUNCTION, header_callback);
+          my_setopt(curl, CURLOPT_HEADERDATA, &outs);
         }
         
         retry_numretries = config->req_retry;
@@ -5162,7 +5175,8 @@ operate(struct Configurable *config, int argc, argv_item_t argv[])
           }
 
           if (config->content_disposition && outs.stream)
-              printf("curl: Saved to filename '%s'\n", outs.filename);
+            /* FIXME: is there any way to suppress the message? */
+            printf("curl: Saved to filename '%s'\n", outs.filename);
 
           /* if retry-max-time is non-zero, make sure we haven't exceeded the
              time */

