+#if VMG_CAREFUL_SELF_DESTRUCTION
+ /* Silently undo the ref - don't trigger destruction in the referent
+ * for a second time */
+ if (SvROK(ud->rsv) && SvRV(ud->rsv) == sv) {
+ SvRV_set(ud->rsv, NULL);
+ SvROK_off(ud->rsv);
+ --SvREFCNT(sv); /* Silent */
+ }
+ SvREFCNT_dec_NN(ud->rsv);
+#endif
+