In case you haven't tried it, Booleans can sometimes work better if you seperate the task into smaller chunks.
In this case, I would select the windows and then seperate them back into individual windows before trying them one by one. I can't tell you why it works, but sometimes it just does.
Hope it helps.
Simon
EDIT: I've just looked more closely and noticed the window's one object. Hmm. Possibly constructing the second level out of a seperate cube may help, that you then attach to level one at a later stage. Similarly, trying to do the boolean on a cube with more x,y&z divisions may help. Then you could just delete the unneccesary edges and verts after the boolean op is done.
Last edited by enhzflep; 07-12-2006 at 12:50 PM.