note that you probably should click the "back to root pagelink in figure - after successful deletion--don' use your browser' back button to return to the message selection list at this point because the delete has changed the relative numbers of some messages in the list the pymailgui client program worked around this problem by automatically updating its in-memory message cache and refreshing the index list on deletionsbut pymailcgi doesn' currently have way to mark older pages as obsolete if your browser reruns server-side scripts as you press your back buttonyou'll regenerate and hence refresh the list anyhow if your browser displays cached pages as you go backthoughyou might see the deleted message still present in the list worseclicking on view link in an old selection list page may not bring up the message you think it shouldif it appears in the list after message that was deleted this is property of pop email in generalwhich we have discussed before in this bookincoming mail simply adds to the mail list with higher message numbersbut deletions remove mail from arbitrary locations in the list and hence change message numbers for all mail following the ones deleted inbox synchronization error potential as we saw in even the pymailgui client has the potential to get some message numbers wrong if mail is deleted by another program while the gui is open-in second pymailgui instancefor exampleor in simultaneously running pymailcgi server session this can also occur if the email server automatically deletes message after the mail list has been loaded--for instancemoving it from inbox to undeliverable on errors this is why pymailgui went out of its way to detect server inbox synchronization errors on loads and deletesusing mailtools package utilities its deletionsfor instancematch saved email headers with those for the corresponding message number in the server' inboxto ensure accuracy similar test is performed on loads on mismatchesthe mail index is automatically reloaded and updated unfortunatelywithout additional state informationpymailcgi cannot detect such errorsit has no email list to compare against when messages are viewed or deletedonly the message number in link or hidden form field in the worst casepymailcgi cannot guarantee that deletes remove the intended mail-it' unlikely but not impossible that mail earlier in the list may have been deleted between the time message numbers were fetched and mail is deleted at the server without extra state information on the serverpymailcgi cannot use the safe deletion or synchronization error checks in the mailtools modules to check whether subject message numbers are still valid to guarantee safe deletespymailcgi would require state retentionwhich maps message numbers passed in pages to saved mail headers fetched when the numbers were the pymailcgi server