If an invalid CSV file is loaded and the loading fails, then the _currentCsv field still contains the invalid instance. Fixed this by setting this to null on an error. I've also changed the code in the try/catch block so that it doesn't ask the user if they want to try again. It was recursively calling itself in the catch block! :/