summaryrefslogtreecommitdiff
path: root/sv.c
diff options
context:
space:
mode:
Diffstat (limited to 'sv.c')
-rw-r--r--sv.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sv.c b/sv.c
index ecf86e5808..44a114bdd9 100644
--- a/sv.c
+++ b/sv.c
@@ -7205,7 +7205,11 @@ Perl_sv_bless(pTHX_ SV *sv, HV *stash)
else
SvAMAGIC_off(sv);
- SvSETMAGIC(tmpRef);
+ if(SvSMAGICAL(tmpRef))
+ if(mg_find(tmpRef, PERL_MAGIC_ext) || mg_find(tmpRef, PERL_MAGIC_uvar))
+ mg_set(tmpRef);
+
+
return sv;
}