The current scheme of localization of %^H works in simplest cases, but it should break in harder ones. I'm not ready to produce a test case, but the following patch should fix it. AFACU, it would not create any memory leak too. Enjoy, Ilya P.S. I do not know what clone_interpreter is doing, so I cannot comment on whether what it is doing with %^H is "correct". --- ./pp_ctl.c~ Tue Feb 1 15:29:47 2000 +++ ./pp_ctl.c Mon Feb 21 17:15:35 2000 @@ -3108,6 +3108,7 @@ PP(pp_require) PL_rsfp = tryrsfp; SAVEHINTS(); PL_hints = 0; + GvHV(PL_hintgv) = NULL; SAVESPTR(PL_compiling.cop_warnings); if (PL_dowarn & G_WARN_ALL_ON) PL_compiling.cop_warnings = WARN_ALL ;