- (when (elmo-folder-persistent-p folder)
- (when (elmo-folder-message-modified-internal folder)
- (elmo-msgdb-overview-save
- (elmo-folder-msgdb-path folder)
- (elmo-msgdb-get-overview (elmo-folder-msgdb folder)))
- (elmo-msgdb-number-save
- (elmo-folder-msgdb-path folder)
- (elmo-msgdb-get-number-alist (elmo-folder-msgdb folder)))
- (elmo-folder-set-info-max-by-numdb
- folder
- (elmo-folder-list-messages folder nil 'in-msgdb))
- (elmo-folder-set-message-modified folder nil)
- (elmo-msgdb-killed-list-save
- (elmo-folder-msgdb-path folder)
- (elmo-folder-killed-list-internal folder)))
- (when (elmo-folder-mark-modified-internal folder)
- (elmo-msgdb-mark-save
- (elmo-folder-msgdb-path folder)
- (elmo-msgdb-get-mark-alist (elmo-folder-msgdb folder)))
- (elmo-folder-set-mark-modified-internal folder nil))))
+ (let ((msgdb (elmo-folder-msgdb-internal folder)))
+ (when (and msgdb (elmo-folder-persistent-p folder))
+ (when (elmo-msgdb-message-modified-p msgdb)
+ (elmo-folder-set-info-max-by-numdb
+ folder
+ (elmo-folder-list-messages folder nil 'in-msgdb))
+ (elmo-msgdb-killed-list-save
+ (elmo-folder-msgdb-path folder)
+ (elmo-folder-killed-list-internal folder)))
+ (elmo-msgdb-save msgdb))))