Put a break point in your code on the line
Maintanance.HaveSet = true;
and see if Maintanance is null, if not trace into the set portion of the HaveSet property and see if the variable haveSet is null. The code you posted has both declared static so they shouldn't be null, but if your actual code does not declare them static then they will be null if you don't instantiate them.