If I understood correctly, the point will be inserted in only one of the four quadtree (or its children), so it's pointless to keep trying to insert once the right quadtree has been found. Make the insert method return "true" if the item was inserted, "false" if it wasn't, and if quad.insert(...) returns true, simply return.