--- op.c.before 2005-10-18 19:13:33.000000000 +0100 +++ op.c 2005-10-18 19:33:09.000000000 +0100 @@ -4902,7 +4902,13 @@ OP * Perl_newGVREF(pTHX_ I32 type, OP *o) { - if (type == OP_MAPSTART || type == OP_GREPSTART || type == OP_SORT) + dVAR; + if (o->op_type == OP_PADANY) { + o->op_type = OP_PADGV; + o->op_ppaddr = PL_ppaddr[OP_PADGV]; + return o; + } + else if (type == OP_MAPSTART || type == OP_GREPSTART || type == OP_SORT) return newUNOP(OP_NULL, 0, o); return ref(newUNOP(OP_RV2GV, OPf_REF, o), type); }