Boolean difference not carving correctly
you could try the following:
Go into edit mode, press a to select all, then w and remove doubles
now back into edit mode, press ctrl+a and apply the rotation and scale.
now try the boolean modifier again

are there any other things in your modifier stack ?