I think the difference is that David uses the index returned by InsertItem to access the associated subitems, whereas you use the loop index, which is then not necessarily equal to the inserted Item index. :doh: Meaning if loop index is 3, and inserted Item gets index 2, you will then modify subitem of Item with index 3 instead of 2. Is this clear :~ ? ~RaGE();