There can only be one problem that I see in that coding, and that is that it occasionally isn't "scraping" a value, so when it goes to do this: add to list %rows: {1},{2} (2 being the value of the "next list item" from effective, which was added to the "effective" list after being scraped from the page) There is no value for 2 (sometimes...if I'm right), so you get the error you've posted because it has nothing to add to the list for value {2}. You can test that hypothesis of mine a number of ways: Get rid of {2} and run the program and see if it throws the error. Keep the {2} but a