With the Wait For/Sleep, pnlRoot_Resize is called, your list is cleared, the first item is displayed, Wait For/Sleep happens, allowing pnlRoot_Resize to fire "early". Now it gets interesting: Your list is cleared (removing the first item that was placed by the first call to FillScrollView) and a second FillScrollView is filling 15 items and the first FillScrollView is continuing the remaining 14 items. With the Wait For/Sleep, they bounce back and forth between each other, creating duplicate entries.