diff -ru Enbugger-2.016-orig/Enbugger.xs Enbugger-2.016/Enbugger.xs
--- Enbugger-2.016-orig/Enbugger.xs     2014-04-26 01:58:29.000000000 +1000
+++ Enbugger-2.016/Enbugger.xs  2014-05-15 10:51:28.000000000 +1000
@@ -231,13 +231,12 @@
Enbugger_set_magic_dbfile(rv)
    SV *rv
  INIT:
-    HV *hv;
+    GV *gv;
  CODE:
    assert(SvROK(rv));
-
-    hv = (HV*) SvRV(rv);
-    assert(SVt_PVHV == SvTYPE(hv));
-    hv_magic(hv, NULL, PERL_MAGIC_dbfile);
+    gv = (GV*)SvRV(rv);
+    assert(SVt_PVGV == SvTYPE(gv));
+    hv_magic(GvHVn(gv), GvAVn(gv), PERL_MAGIC_dbfile);



diff -ru Enbugger-2.016-orig/lib/Enbugger.pm Enbugger-2.016/lib/Enbugger.pm
--- Enbugger-2.016-orig/lib/Enbugger.pm 2014-04-26 01:58:29.000000000 +1000
+++ Enbugger-2.016/lib/Enbugger.pm      2014-05-15 10:51:28.000000000 +1000
@@ -356,11 +356,11 @@
     if ( not defined $file ) {
         *DB::dbline = [];
         *DB::dbline = {};
-         Enbugger::set_magic_dbfile( \%DB::dbline );
     }
     else {
         no strict 'refs';
         *DB::dbline = \*{"main::_<$file"};
+         Enbugger::set_magic_dbfile( \*DB::dbline );
     }
}

@@ -399,8 +399,8 @@

    if ( ! *$glob{HASH} ) {
        my %breakpoints;
-        Enbugger::set_magic_dbfile(\%breakpoints);
        *$glob = \%breakpoints;
+        Enbugger::set_magic_dbfile($glob);
    }

    $$symname ||= $file;