--- pp.c.1 2005-10-18 22:30:22.000000000 +0100 +++ pp.c 2005-10-19 00:47:33.000000000 +0100 @@ -130,9 +130,15 @@ PP(pp_padgv) { dSP; dTARGET; - XPUSHs(TARG); - if (PL_op->op_private & OPpLVAL_INTRO) - SAVECLEARSV(PAD_SVl(PL_op->op_targ)); + if (PL_op->op_private & OPpLVAL_INTRO) { + GV *gen_gv = newGVgen("lexical"); + sv_upgrade(TARG, SVt_RV); + SvREFCNT_inc((SV *)gen_gv); + SvRV_set(TARG, (SV *)gen_gv); + SvROK_on(TARG); + SAVECLEARSV(PAD_SVl(PL_op->op_targ)); + } + XPUSHs(SvRV(TARG)); RETURN; }