const char *from;
     time_t date;
     const char *relative_date;
-    const char *subject;
     const char *tags;
 
     from = notmuch_message_get_header (message, "from");
     date = notmuch_message_get_date (message);
     relative_date = _format_relative_date (ctx, date);
 
-    subject = notmuch_message_get_header (message, "subject");
-
     tags = _get_tags_as_string (ctx, message);
 
-    return talloc_asprintf (ctx, "%s (%s) %s (%s)",
-                           from, relative_date, subject, tags);
+    return talloc_asprintf (ctx, "%s (%s) (%s)",
+                           from, relative_date, tags);
 }
 
 static void
 
        printf ("%s\n", _get_one_line_summary (local, message));
 
+       printf ("%s\n", notmuch_message_get_header (message, "subject"));
+
        for (i = 0; i < ARRAY_SIZE (headers); i++) {
            name = headers[i];
            value = notmuch_message_get_header (message, name);
 
 
 (defun notmuch-show-markup-header ()
   (re-search-forward notmuch-show-header-begin-regexp)
-  (next-line 2)
+  (forward-line 1)
   (beginning-of-line)
   (let ((beg (point)))
+    (end-of-line)
+    ; Inverse video for subject
+    (overlay-put (make-overlay beg (point)) 'face '((cons :inverse-video t)))
+    (beginning-of-line)
+    (forward-line 2)
+    (set 'beg (point))
     (re-search-forward notmuch-show-header-end-regexp)
     (overlay-put (make-overlay beg (match-beginning 0))
                 'invisible 'notmuch-show-header)))