+2003-11-07  Hiroya Murata  <lapis-lazuli@pop06.odn.ne.jp>
+
+       * elmo-msgdb.el (elmo-msgdb-flag-table): Fixed problem when
+       message-id is nil.
+       (Reported by MAKINO Takashi <makino@digitalway.co.jp>)
+
+       * modb-entity.el (elmo-message-entity-handler): Likewise.
+
 2003-11-07  Yuuichi Teranishi  <teranisi@gohome.org>
 
        * elmo.el (toplevel): Remove setting of autoloding for
 
   ;; Make a table of msgid flag (read, answered)
   (let ((flag-table (or flag-table
                        (elmo-make-hash (elmo-msgdb-length msgdb))))
-       entity)
+       msg-id)
     (dolist (number (elmo-msgdb-list-messages msgdb))
-      (setq entity (elmo-msgdb-message-entity msgdb number))
-      (elmo-flag-table-set
-       flag-table
-       (elmo-message-entity-field entity 'message-id)
-       (elmo-msgdb-flags msgdb number)))
+      (when (setq msg-id (elmo-message-entity-field
+                         (elmo-msgdb-message-entity msgdb number)
+                         'message-id))
+       (elmo-flag-table-set flag-table
+                            msg-id
+                            (elmo-msgdb-flags msgdb number))))
     flag-table))
 
 (defun elmo-multiple-fields-body-list (field-names &optional boundary)
 
 (defun elmo-message-entity-handler (&optional entity)
   "Get modb entity handler instance which corresponds to the ENTITY."
   (if (and entity
+          (car-safe entity)
           (not (stringp (car entity))))
       (car entity)
     (or modb-entity-default-cache-internal