diff --git a/rts/RetainerProfile.c b/rts/RetainerProfile.c
index 553f7e7ad10bd7ca915f3922744903f3c48dfddb..f75250659cebb9b6806c77c0a98dbaa8095ab7de 100644
--- a/rts/RetainerProfile.c
+++ b/rts/RetainerProfile.c
@@ -1439,7 +1439,7 @@ retainStack( StgClosure *c, retainer c_child_r,
 	    StgFunInfoTable *fun_info;
 	    
 	    retainClosure(ret_fun->fun, c, c_child_r);
-	    fun_info = get_fun_itbl(ret_fun->fun);
+	    fun_info = get_fun_itbl(UNTAG_CLOSURE(ret_fun->fun));
 	    
 	    p = (P_)&ret_fun->payload;
 	    switch (fun_info->f.fun_type) {