diff --git a/ghc/runtime/storage/SMmark.lhc b/ghc/runtime/storage/SMmark.lhc
index c2a703d0d2499c81d7bc1178a21bd050f0fff6c4..026e809b88ecda1b98929502c0a15e1cacdc345b 100644
--- a/ghc/runtime/storage/SMmark.lhc
+++ b/ghc/runtime/storage/SMmark.lhc
@@ -1200,7 +1200,7 @@ STGFUN(_PRIn_TSO)
     default:
     	/* update the register we just did; save the old mstack */
 	mstack = r->rR[oldpos - 2].p;
-	r->rR[oldpos - 2] = Mark;
+	r->rR[oldpos - 2].p = Mark;
     	break;
     }