-#define PADNAME_PV(pn) SvPV_nolen(pn)
-#define PADNAME_LEN(pn) SvCUR(pn)
-#define PADNAME_UTF8(pn) !!SvUTF8(pn)
-#define PADNAME_isOUR(pn) !!SvPAD_OUR(pn)
-#define PADNAME_OURSTASH SvOURSTASH(pn)
-#define PADNAME_OUTER !!SvFAKE(pn)
-#define PADNAME_TYPE(pn) (SvPAD_TYPED(pn) ? SvSTASH(pn) : NULL)
+#define PadnamePV(pn) (SvPOKp(pn) ? SvPVX(pn) : NULL)
+#define PadnameLEN(pn) ((pn) == &PL_sv_undef ? 0 : SvCUR(pn))
+#define PadnameUTF8(pn) !!SvUTF8(pn)
+#define PadnameSV(pn) pn
+#define PadnameIsOUR(pn) !!SvPAD_OUR(pn)
+#define PadnameOURSTASH(pn) SvOURSTASH(pn)
+#define PadnameOUTER(pn) !!SvFAKE(pn)
+#define PadnameIsSTATE(pn) !!SvPAD_STATE(pn)
+#define PadnameTYPE(pn) (SvPAD_TYPED(pn) ? SvSTASH(pn) : NULL)