(it was leaving an unused block). Also protect the global stack pointer from context changes while fiddling with it.