(set 'notmuch-show-part-end-regexp         "\fpart}")
 (set 'notmuch-show-marker-regexp "\f\\(message\\|header\\|body\\|attachment\\|part\\)[{}].*$")
 
-(set 'notmuch-show-id-regexp "id:\\([^ ]*\\)")
+(set 'notmuch-show-id-regexp "\\(id:[^ ]*\\)")
 (set 'notmuch-show-filename-regexp "filename:\\(.*\\)$")
 (set 'notmuch-show-tags-regexp "(\\([^)]*\\))$")
 
   (apply 'notmuch-call-notmuch-process
         (append (cons "tag"
                       (mapcar (lambda (s) (concat "+" s)) toadd))
-                (cons (concat "id:" (notmuch-show-get-message-id)) nil)))
+                (cons (notmuch-show-get-message-id) nil)))
   (notmuch-show-set-tags (sort (union toadd (notmuch-show-get-tags) :test 'string=) 'string<)))
 
 (defun notmuch-show-remove-tag (&rest toremove)
          (apply 'notmuch-call-notmuch-process
                 (append (cons "tag"
                               (mapcar (lambda (s) (concat "-" s)) toremove))
-                        (cons (concat "id:" (notmuch-show-get-message-id)) nil)))
+                        (cons (notmuch-show-get-message-id) nil)))
          (notmuch-show-set-tags (sort (set-difference tags toremove :test 'string=) 'string<))))))
 
 (defun notmuch-show-archive-thread-maybe-mark-read (markread)