I had to get creative when solving a bug earlier. A class was sometimes reading behind by one line of data to be read in so I added an if statement to call an additional sr.ReadLine() so if the error shows up the class was not interrupted in loading and if it didn't show up it carried on as usual. I never could figure out why it insisted on doing this sometimes but at least I found a flexible solution.