Boolean difference looks like union

I am trying to do a Boolean difference on two objects but it always ends up looking like a Union, and I can’t figure out why. I tried a remove doubles, recalculate normals, etc. and I can’t figure out if my meshes are unfit for a boolean modifier somehow.

http://uploader.polorix.net//files/1007/tach17.blend

As a side note, I have heard that booleans are a ‘bad idea’ but it seemed natural to use booleans here, and furthermore I can’t think of a natural way to model this without booleans.

Also, if it matters at all, the final object will be done with a glass texture.

I still haven’t found a way around this problem, and I haven’t gotten any replies from anyone yet ):

Can someone please look at my mesh and give me some suggestions how to do the difference properly?

Thanks

Well, it can be done without boolean operations, simply by modelling one section.

But to your problem: the big grey object is bad. First, there are some open edges in the hole in the middle of it. The end if it should be closed. Second, normals are not pointing in the same direction, recalculate them. And third, do not forget to remove those 430 incident vertices…

It looks like a union because Blender makes copies of the original mesh. If you move some, you will find that there are a lot of pieces, one of them being the difference.