Boolean difference produces incorrect result I'm carving letters on a cylinder with the Boolean difference operator.
This worked well for a while, but suddenly a strange result became to occur:



As you can see, a part of the letter made a pit in the cylinder (as intended), while outside part produced "walls" around the letter edge.

I already checked for broken normals and duplicate vertices.

Also, I can not see mesh geometry when I switch to wireframe shading (not sure if it's releated):


The file itself can be downloaded from here: https://drive.google.com/open?id=0B8QGeF3SuAgTRXNyZ2xsZVV4Tk0

What do I need to fix to make this operation work correctly?
Make sure you apply the scale and rotation of the objects. In Object Mode select an object and press CTRL + "A" and select "Rotation and Scale" from the drop down menu.