diff --git a/Build.PL b/Build.PL
deleted file mode 100644
index 8f82a5f..0000000
--- a/Build.PL
+++ /dev/null
@@ -1,26 +0,0 @@
-use Module::Build;
-
-my $build = Module::Build->new(
-    module_name        => 'Exception::Class::DBI',
-    license            => 'perl',
-    create_makefile_pl => 'traditional',
-    configure_requires => { 'Module::Build' => '0.2701' },
-    recommends         => { 'Test::Pod'     => '1.41'   },
-    build_requires     => {
-        'Module::Build' => '0.2701',
-        'Test::More'    => '0.17',
-        'Test::Harness' => '2.03',
-    },
-    requires           => {
-        'DBI'              => '1.28',
-        'Exception::Class' => '1.02',
-    },
-    meta_merge => {
-        resources => {
-            homepage   => 'http://search.cpan.org/dist/Exception-Class-DBI/',
-            bugtracker => 'http://github.com/theory/exception-class-dbi/issues/',
-            repository => 'http://github.com/theory/exception-class-dbi/',
-        }
-    },
-);
-$build->create_build_script;
diff --git a/Changes b/Changes
index f35b333..c44657e 100644
--- a/Changes
+++ b/Changes
@@ -1,5 +1,18 @@
 Revision history for Perl extension Exception::Class::DBI.
 
+1.04 2019-05-27 14:41:02 -0400
+  - Production release identical to 1.03_01
+
+1.03_01 2019-05-10 20:53:22 -0600
+  - Require Perl 5.6 (for warnings)
+  - Migrate to ExtUtils::MakeMaker for installer
+  - Fix warnings in tests
+  - New maintainer, GitHub repository and issue tracker
+    (old GitHub URLs should forward to the new ones)
+
+1.02  2011-06-19
+      - Fixed broken rt.cpan.org email address.
+
 1.01  2011-06-20T04:27:43
         - Fixed a warning in `t/sth.t`.
         - Moved repostitory to
diff --git a/MANIFEST b/MANIFEST
index f722f18..4b53b59 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -1,10 +1,8 @@
-Build.PL
 Changes
 lib/Exception/Class/DBI.pm
+maint/releaseprep
 Makefile.PL
 MANIFEST			This list of files
-META.json
-META.yml
 README.md
 t/dbh.t
 t/dbi.t
@@ -12,3 +10,5 @@ t/drh.t
 t/sth.t
 t/subclass.t
 t/z_pod.t
+META.yml                                 Module YAML meta-data (added by MakeMaker)
+META.json                                Module JSON meta-data (added by MakeMaker)
diff --git a/META.json b/META.json
index 974d766..965eec8 100644
--- a/META.json
+++ b/META.json
@@ -1,71 +1,61 @@
 {
    "abstract" : "DBI Exception objects",
    "author" : [
-      "David E. Wheeler <david@justatheory.com>"
+      "unknown"
    ],
    "dynamic_config" : 1,
-   "generated_by" : "Module::Build version 0.38, CPAN::Meta::Converter version 2.110440",
+   "generated_by" : "ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.150010",
    "license" : [
       "perl_5"
    ],
    "meta-spec" : {
       "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
-      "version" : "2"
+      "version" : 2
    },
    "name" : "Exception-Class-DBI",
+   "no_index" : {
+      "directory" : [
+         "t",
+         "inc"
+      ]
+   },
    "prereqs" : {
       "build" : {
          "requires" : {
-            "Module::Build" : "0.2701",
-            "Test::Harness" : "2.03",
-            "Test::More" : "0.17"
+            "ExtUtils::MakeMaker" : "6.64"
          }
       },
       "configure" : {
          "requires" : {
-            "Module::Build" : "0.2701"
+            "ExtUtils::MakeMaker" : "6.64"
          }
       },
       "runtime" : {
-         "recommends" : {
-            "Test::Pod" : "1.41"
-         },
          "requires" : {
             "DBI" : "1.28",
-            "Exception::Class" : "1.02"
+            "Exception::Class" : "1.02",
+            "perl" : "5.006000"
          }
-      }
-   },
-   "provides" : {
-      "Exception::Class::DBI" : {
-         "file" : "lib/Exception/Class/DBI.pm",
-         "version" : "1.01"
-      },
-      "Exception::Class::DBI::DBH" : {
-         "file" : "lib/Exception/Class/DBI.pm",
-         "version" : 0
       },
-      "Exception::Class::DBI::H" : {
-         "file" : "lib/Exception/Class/DBI.pm",
-         "version" : 0
-      },
-      "Exception::Class::DBI::STH" : {
-         "file" : "lib/Exception/Class/DBI.pm",
-         "version" : 0
+      "test" : {
+         "requires" : {
+            "Test::Harness" : "2.03",
+            "Test::More" : "0.17"
+         }
       }
    },
    "release_status" : "stable",
    "resources" : {
       "bugtracker" : {
-         "web" : "http://github.com/theory/exception-class-dbi/issues/"
+         "web" : "https://github.com/plicease/Exception-Class-DBI/issues"
       },
-      "homepage" : "http://search.cpan.org/dist/Exception-Class-DBI/",
-      "license" : [
-         "http://dev.perl.org/licenses/"
-      ],
+      "homepage" : "https://metacpan.org/pod/Exception-Class-DBI",
       "repository" : {
-         "url" : "http://github.com/theory/exception-class-dbi/"
+         "type" : "git",
+         "url" : "https://github.com/plicease/Exception-Class-DBI.git",
+         "web" : "https://github.com/plicease/Exception-Class-DBI"
       }
    },
-   "version" : "1.01"
+   "version" : "1.04",
+   "x_serialization_backend" : "JSON::PP version 4.02"
 }
diff --git a/META.yml b/META.yml
index f23f893..399ae8b 100644
--- a/META.yml
+++ b/META.yml
@@ -1,41 +1,31 @@
 ---
 abstract: 'DBI Exception objects'
 author:
-  - 'David E. Wheeler <david@justatheory.com>'
+  - unknown
 build_requires:
-  Module::Build: 0.2701
-  Test::Harness: 2.03
-  Test::More: 0.17
+  ExtUtils::MakeMaker: '6.64'
+  Test::Harness: '2.03'
+  Test::More: '0.17'
 configure_requires:
-  Module::Build: 0.2701
+  ExtUtils::MakeMaker: '6.64'
 dynamic_config: 1
-generated_by: 'Module::Build version 0.38, CPAN::Meta::Converter version 2.110440'
+generated_by: 'ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.150010'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
-  version: 1.4
+  version: '1.4'
 name: Exception-Class-DBI
-provides:
-  Exception::Class::DBI:
-    file: lib/Exception/Class/DBI.pm
-    version: 1.01
-  Exception::Class::DBI::DBH:
-    file: lib/Exception/Class/DBI.pm
-    version: 0
-  Exception::Class::DBI::H:
-    file: lib/Exception/Class/DBI.pm
-    version: 0
-  Exception::Class::DBI::STH:
-    file: lib/Exception/Class/DBI.pm
-    version: 0
-recommends:
-  Test::Pod: 1.41
+no_index:
+  directory:
+    - t
+    - inc
 requires:
-  DBI: 1.28
-  Exception::Class: 1.02
+  DBI: '1.28'
+  Exception::Class: '1.02'
+  perl: '5.006000'
 resources:
-  bugtracker: http://github.com/theory/exception-class-dbi/issues/
-  homepage: http://search.cpan.org/dist/Exception-Class-DBI/
-  license: http://dev.perl.org/licenses/
-  repository: http://github.com/theory/exception-class-dbi/
-version: 1.01
+  bugtracker: https://github.com/plicease/Exception-Class-DBI/issues
+  homepage: https://metacpan.org/pod/Exception-Class-DBI
+  repository: https://github.com/plicease/Exception-Class-DBI.git
+version: '1.04'
+x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff --git a/Makefile.PL b/Makefile.PL
index 545dd19..0f68063 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -1,18 +1,45 @@
-# Note: this file was auto-generated by Module::Build::Compat version 0.3800
-use ExtUtils::MakeMaker;
-WriteMakefile
-(
-  'NAME' => 'Exception::Class::DBI',
-  'VERSION_FROM' => 'lib/Exception/Class/DBI.pm',
-  'PREREQ_PM' => {
-                   'DBI' => '1.28',
-                   'Exception::Class' => '1.02',
-                   'Module::Build' => '0.2701',
-                   'Test::Harness' => '2.03',
-                   'Test::More' => '0.17'
-                 },
-  'INSTALLDIRS' => 'site',
-  'EXE_FILES' => [],
-  'PL_FILES' => {}
-)
-;
+use strict;
+use warnings;
+use 5.006;
+use ExtUtils::MakeMaker 6.64;
+
+WriteMakefile(
+    NAME                => 'Exception::Class::DBI',
+    LICENSE             => 'perl',
+    VERSION_FROM        => 'lib/Exception/Class/DBI.pm',
+    ABSTRACT_FROM       => 'lib/Exception/Class/DBI.pm',
+    MIN_PERL_VERSION    => '5.006000',
+
+    CONFIGURE_REQUIRES => {
+        'ExtUtils::MakeMaker' => '6.64',
+    },
+
+    BUILD_REQUIRES => {
+        'ExtUtils::MakeMaker' => '6.64',
+    },
+
+    TEST_REQUIRES => {
+        'Test::More'    => '0.17',
+        'Test::Harness' => '2.03',
+    },
+
+    PREREQ_PM => {
+        'DBI'              => '1.28',
+        'Exception::Class' => '1.02',
+    },
+
+    META_MERGE => {
+        'meta-spec' => { version => 2 },
+        resources => {
+            bugtracker => {
+                web  => 'https://github.com/plicease/Exception-Class-DBI/issues',
+            },
+            homepage => 'https://metacpan.org/pod/Exception-Class-DBI',
+            repository => {
+                type => 'git',
+                url  => 'https://github.com/plicease/Exception-Class-DBI.git',
+                web  => 'https://github.com/plicease/Exception-Class-DBI',
+            },
+        }
+    },
+);
diff --git a/README.md b/README.md
index df74b8d..ce70053 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-Exception/Class/DBI version 1.01
+Exception/Class/DBI version 1.02
 ================================
 
 This module offers a set of DBI-specific exception classes. They inherit from
@@ -39,6 +39,7 @@ Dependencies
 
 This module requires these other modules and libraries:
 
+* Perl 5.6 or later
 * DBI 1.28 or later (1.30 or later strongly recommended).
 * Exception::Class 1.02 or later (1.05 or later strongly recommended).
 * Test::Simple 0.40 (for testing).
diff --git a/debian/changelog b/debian/changelog
index 12602b4..66fc0c3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-libexception-class-dbi-perl (1.01-2) UNRELEASED; urgency=medium
+libexception-class-dbi-perl (1.04-1) UNRELEASED; urgency=medium
 
   [ Salvatore Bonaccorso ]
   * debian/control: Use HTTPS transport protocol for Vcs-Git URI
@@ -10,7 +10,10 @@ libexception-class-dbi-perl (1.01-2) UNRELEASED; urgency=medium
   [ Salvatore Bonaccorso ]
   * Update Vcs-* headers for switch to salsa.debian.org
 
- -- Salvatore Bonaccorso <carnil@debian.org>  Sat, 30 Jan 2016 20:04:14 +0100
+  [ Debian Janitor ]
+  * New upstream release.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Mon, 12 Aug 2019 20:55:40 +0000
 
 libexception-class-dbi-perl (1.01-1) unstable; urgency=low
 
diff --git a/lib/Exception/Class/DBI.pm b/lib/Exception/Class/DBI.pm
index 087ef59..deb4593 100644
--- a/lib/Exception/Class/DBI.pm
+++ b/lib/Exception/Class/DBI.pm
@@ -1,10 +1,11 @@
 package Exception::Class::DBI;
 
-use 5.00500;
+use 5.006;
 use strict;
+use warnings;
 use Exception::Class;
-use vars qw($VERSION);
-$VERSION = '1.01';
+
+our $VERSION = '1.04';
 
 use Exception::Class (
     'Exception::Class::DBI' => {
@@ -605,17 +606,19 @@ STH exceptions.
 =head1 Support
 
 This module is stored in an open L<GitHub
-repository|http://github.com/theory/exception-class-dbi/>. Feel free to fork
+repository|http://github.com/plicease/Exception-Class-DBI/>. Feel free to fork
 and contribute!
 
 Please file bug reports via L<GitHub
-Issues|http://github.com/theory/exception-class-dbi/issues/> or by sending
+Issues|http://github.com/plicease/Exception-Class-DBI/issues/> or by sending
 mail to
-L<bug-Exception-Class-DBI.cpan.org|mailto:bug-Exception-Class-DBI.cpan.org>.
+L<bug-Exception-Class-DBI@rt.cpan.org|mailto:bug-Exception-Class-DBI@rt.cpan.org>.
 
 =head1 Author
 
-David E. Wheeler <david@justatheory.com>
+Original Author is David E. Wheeler <david@justatheory.com>
+
+Current maintainer is Graham Ollis <plicease@cpan.org>
 
 =head1 See Also
 
@@ -628,7 +631,7 @@ it. There's lots more information in these exception objects, so use them!
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (c) 2002-2011, David E. Wheeler. Some Rights Reserved.
+Copyright (c) 2002-2019, David E. Wheeler. Some Rights Reserved.
 
 This module is free software; you can redistribute it and/or modify it under
 the same terms as Perl itself.
diff --git a/maint/releaseprep b/maint/releaseprep
new file mode 100755
index 0000000..6159b16
--- /dev/null
+++ b/maint/releaseprep
@@ -0,0 +1,43 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use autodie qw( :all );
+use App::RewriteVersion;
+
+my $version = shift @ARGV;
+my $time = `date +'%F %T %z'`;
+chomp $time;
+
+if($version)
+{
+  # update the version number in all modules
+  {
+    my $rewrite = App::RewriteVersion->new;
+    $rewrite->allow_decimal_underscore(1);
+    $rewrite->verbose(1);
+    $rewrite->rewrite_versions($version);
+  }
+
+  # update the Changes file
+  {
+    my @lines;
+    my $fh;
+    my $first = 1;
+    open $fh, '<', 'Changes';
+    while(my $line = <$fh>)
+    {
+      if($first && $line =~ /^\s+-/)
+      {
+        push @lines, "$version $time\n";
+        $first = 0;
+      }
+      push @lines, $line;
+    }
+    close $fh;
+    open $fh, '>', 'Changes';
+    print $fh $_ for @lines;
+    close $fh;
+  }
+}
+
diff --git a/t/dbh.t b/t/dbh.t
index 0dcfdb4..31b87a3 100644
--- a/t/dbh.t
+++ b/t/dbh.t
@@ -1,6 +1,5 @@
-#!/usr/bin/perl -w
-
 use strict;
+use warnings;
 use Test::More tests => 27;
 BEGIN { use_ok('Exception::Class::DBI') or die }
 use DBI;
diff --git a/t/dbi.t b/t/dbi.t
index d62ed03..f5a9bb4 100644
--- a/t/dbi.t
+++ b/t/dbi.t
@@ -1,6 +1,5 @@
-#!/usr/bin/perl -w
-
 use strict;
+use warnings;
 use Test::More tests => 14;
 BEGIN { use_ok('Exception::Class::DBI') or die }
 use DBI;
diff --git a/t/drh.t b/t/drh.t
index 2a65490..cd9f607 100644
--- a/t/drh.t
+++ b/t/drh.t
@@ -1,6 +1,5 @@
-#!/usr/bin/perl -w
-
 use strict;
+use warnings;
 use Test::More tests => 21;
 BEGIN { use_ok('Exception::Class::DBI') }
 use DBI;
@@ -10,6 +9,7 @@ use DBI;
     # to set the dynamic attributes.
     use DBD::ExampleP;
     local $^W;
+    no warnings 'redefine';
     *DBD::ExampleP::dr::connect =
       sub { $_[0]->set_err(7, 'Dammit Jim!', 'ABCDE') };
 }
diff --git a/t/sth.t b/t/sth.t
index 3a18ad1..1b74af5 100644
--- a/t/sth.t
+++ b/t/sth.t
@@ -1,6 +1,5 @@
-#!/usr/bin/perl -w
-
 use strict;
+use warnings;
 use Test::More tests => 35;
 BEGIN { use_ok('Exception::Class::DBI') or die }
 # Use PurePerl to get around CursorName bug.
@@ -36,7 +35,7 @@ is( $err->err, 2, "Check err" );
 is( $err->errstr, "opendir(foo): $bang",
     "Check errstr" );
 like( $err->error,
-      qr/^DBD::ExampleP::st execute failed: opendir\(foo\): \E$bang/,
+      qr/^DBD::ExampleP::st execute failed: opendir\(foo\): $bang/,
       "Check error" );
 is( $err->state, 'S1000', "Check state" );
 ok( ! defined $err->retval, "Check retval" );
diff --git a/t/subclass.t b/t/subclass.t
index cfd1611..5179010 100644
--- a/t/subclass.t
+++ b/t/subclass.t
@@ -1,6 +1,5 @@
-#!/usr/bin/perl -w
-
 use strict;
+use warnings;
 use Test::More tests => 12;
 BEGIN { use_ok('Exception::Class::DBI') }
 
diff --git a/t/z_pod.t b/t/z_pod.t
index c64db66..dc372ca 100644
--- a/t/z_pod.t
+++ b/t/z_pod.t
@@ -1,6 +1,5 @@
-#!/usr/bin/perl -w
-
 use strict;
+use warnings;
 use Test::More;
 eval "use Test::Pod 1.41";
 plan skip_all => "Test::Pod 1.41 required for testing POD" if $@;