This page contains answers to frequently asked Pam questions.
Answer: Calling pam.event_loop() will guarantee that all events (including (un)mapping of windows) get handled properly. If pam.event_loop() does not work, you've got a "dead" window that won't respond to events and will therefore not get redrawn.
The most frequent reason that pam.update() fails to work is that the programmer forgets to place a pam.update() directly after the command that adds the window to the screen. Due to an Amulet quirk, Pam must map a window before it draws anything in the window. If the programmer does not call pam.update() until after several objects have been added to the window, then pam.update() maps the window but does not draw the objects. Calling pam.update() a second time will not work. The only solution in this case is to call pam.event_loop().