cleanup installation of utilities on win32
[p5sagit/p5-mst-13.2.git] / doop.c
diff --git a/doop.c b/doop.c
index e92f49e..e527cde 100644 (file)
--- a/doop.c
+++ b/doop.c
@@ -483,7 +483,11 @@ do_kv(ARGSproto)
                sv_magic(TARG, Nullsv, 'k', Nullch, 0);
            }
            LvTYPE(TARG) = 'k';
-           LvTARG(TARG) = (SV*)hv;
+           if (LvTARG(TARG) != (SV*)hv) {
+               if (LvTARG(TARG))
+                   SvREFCNT_dec(LvTARG(TARG));
+               LvTARG(TARG) = SvREFCNT_inc(hv);
+           }
            PUSHs(TARG);
            RETURN;
        }