Have each stage of a process that uses a progress bar have a variable that ticks up each update by the stage it's at. Then on the progress bar, have something to represent that,<br>Maybe make it gears turning or a spinning circle that actually shows when something is happening.<br>Make the variable then control what part the visual element is at. That way, if something does pause for no reason, and no progress is being made at all, the gears or circle won't be spinning, as nothing will be updating it. As for if it goes into an infinite loop? That's not really the fault of the user, if the program is out of the box, and not designed to go into loops forever.