diff -rN -u old-ghc/rts/StgStdThunks.cmm new-ghc/rts/StgStdThunks.cmm
--- old-ghc/rts/StgStdThunks.cmm        2009-06-07 04:23:09.000000000 +0200
+++ new-ghc/rts/StgStdThunks.cmm        2009-06-07 04:23:09.000000000 +0200
@@ -70,6 +70,7 @@
 #define SELECTOR_CODE_UPD(offset)                                       \
   INFO_TABLE_RET(stg_sel_ret_##offset##_upd, RET_SMALL, RET_PARAMS)    \
   {                                                                    \
+      ASSERT(UNTAG(R1) != stg_dummy_ret_closure);                      \
       R1 = StgClosure_payload(UNTAG(R1),offset);                       \
       GET_SAVED_CCCS;                                                  \
       Sp = Sp + SIZEOF_StgHeader;                                      \

