Buffel:
@wvmarle: According to my interpretation of the specs writing a logical zero in the External Interrupt Flag Register does not trigger anything (only the logical one does). Nevertheless I agree that your code is cleaner
Always tricky those registers.
Key difference between my code and your original though is that the other 6 bits of the register are unaffected. This may or may not make a difference, in general it's a good idea to not touch unused bits.
All in all it looks like a rather complex issue that you ran into! So you get it without any sleep code? Do post your most barebones code that still shows the problem.