Gum overlay logic

I did some rebasing and used force and I managed to loose the reference to the original pull request #229.

Anyway I've fixed the changes based on the comments in #229 and made a clean pull request.

Sorry for the hassle.