Why won't text Boolean correctly after the second Boolean operation? I'm pulling my hair out over this bizarre issue that I'm having.  If I create any text and convert it to a mesh I can successfully Boolean it against a cube.  However, if I then attempt to do the same thing with a 2nd text mesh it does correctly Boolean the cube, however, it's always missing the back end of the engraved text.

Here's a simple case where I have a cube and the letters A and B which I converted to meshes from a Text object.  This is what it looks like before Booleaning:



It doesn't matter which one I do first, but which ever letter I choose it will correctly do a difference boolean.  In this case I did a Boolean with the A.  Now, however, if I attempt to Boolean the B it doesn't work quite right - you can see thru the back since it doesn't generate any polls.  This composite image shows the correct result of the A and the incorrect result of the B:


It ONLY does this with Text that I have converted to Meshes.  If I attempt to Boolean, say, a Sphere it works fine.  I don't think there's anything wrong with my text meshes because like I said whichever one I do first always works, so if I did the B first it would have been correct, and then the A would have been missing the back.

I've tried all sorts of things to try and resolve this, but nothing works.  I even double checked to be sure it wasn't generating flipped backfaces that were hidden.  Does anyone have any ideas what may be going on here?
You need to 'Remove doubles' for you text objects (merge vertices on top of each other):


Enter edit mode for the converted text object.
Select everything.
W> Remove Doubles.
Repeat for each text object.


By default, when text objects are converted to a mesh they are left as separate parts, like the front of the text and  the sides. This creates a messy boolean operation (or more messy  than usual). Here, I applied the first boolean and you can see that it creates disconnected faces (the selected ones) meaning the second boolean doesn't work as expected:



Cleaning the text objects with 'Remove Doubles' will create a cleaner mesh, ready for the second boolean.