Take two: difficulty passing calls to a class object

Ok, I found my still-existing call-passing problem. The perps:

_root.level.blah.blah.startpad (The button)
_root.control (The class object)


on(release) {
    trace('trying to send start');
    _root.control.start_level();
}


public function start_level() {
        trace ('got start request');
        if (this.running == false) {
            this.running = true;
            _root.attachMovie('marble1', 'marble2', 101);
            _root.current_level.model.play();
            _root.current_level.model_shadow.play();
        }
    }

The first code should totally trigger the second code, and it does! Once! When the level is reset (the movie containing startpad is removed and re-attached) the button fails to pass along the call. It traces “trying to start level” but never “got start request”.

Where should I be looking to fix this kind of thing? Why would _root.control suddenly stop receiving calls?

Cheers