Code to remove islands should be outside of the loop which combines objects into single surfaces.