Updating the overlays or underlays of a HUD object alone weren't enough to force the server to send a map update, as a result of which the change would not necessarily be seen unless something else triggered an update.
BYOND Version:484
Operating System:Windows XP Home
Web Browser:Firefox 4.0.1
Applies to:Dream Seeker
Status: Resolved (485)

This issue has been resolved.
Descriptive Problem Summary:
Adding and removing /images from a screen object's overlays/underlays does not update the client's screen. Instead, the screen will remained unchanged until some other object updates the screen.

Numbered Steps to Reproduce Problem:
Create screen object.
Add /image overlay.

Code Snippet:
There are three commands in this demo.

flicker() adds and removes a screen object every other tick. It updates the client's screen correctly.

img() adds and removes an /image overlay from a screen object already in the client's screen. Nothing is shown until something else updates the screen.

state() changes a screen object's icon_state every other tick. It updates the client's screen correctly.

Expected Results:
The player's HUD should update immediately.

Actual Results:
The object in the player's HUD will remain unchanged until something else updates the screen/

Use either of the two methods I described.

This bug may be related to this bug report,
This was a very nice find. There's a feature request that I believe actually revolves around this issue, that I always suspected was a bug.