Boolean difference oddity

 From:  SteveMacc (STEVEH)
3973.2 
Somehow the surfaces are inside out. This makes the Boolean work wrong way round. Difference acts as Union and Union acts as difference. There is a Flip command but I can't make it work.