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;