Stumbled into this today: http://d.puremagic.com/issues/show_bug.cgi?id=9068
A workaround is to put the loop in its own function and do a return instead of "break X". Or an uglier workaround is to use a boolean flag checked right after the switch statement. In my case, I didn't have much to do after the foreach anyway, so the first workaround suffices. In any case, this is a rather ugly bug. T -- "A one-question geek test. If you get the joke, you're a geek: Seen on a California license plate on a VW Beetle: 'FEATURE'..." -- Joshua D. Wachs - Natural Intelligence, Inc.