What does SwMacroCleanup do and why would it cause a macro to stop working the second time the macro is run.