Hi Chris!! 
Easiest option is to shove an Alert on the screen...
Code:
private Display display; // = Display.getDisplay(myMidlet);
private Displayable currentScreen;
Code:
// remember this, because we need to put it back later
currentScreen = display.getCurrent();
// create an alert
Alert alert = new Alert(null, "Working...", null, null);
alert.setTimeout(Alert.FOREVER);
// this will add some kind of "busy" animation to the alert
alert.setIndicator(new Gauge(null, false, Gauge.INDEFINITE, Gauge.CONTINUOUS_RUNNING));
// alerts automatically have a "dismiss" command, unless we add one... so add blank one to make it disappear
// (unless you have a genuine "dismiss"/"cancel" command to add)
alert.addCommand(new Command("\u00a0", Command.ITEM, 0));
// make sure there is no command action (unless you want to add one)
alert.setCommandListener(new CommandListener() {
public void commandAction(Command c, Displayable d) {
// empty
}
});
display.setCurrent(alert, currentScreen);
When the download finishes, just set the previous screen back to current.
Code:
display.setCurrent(currentScreen);
Graham.