diff --git a/debmirror b/debmirror
index ccb4fbd..ae7e5ae 100755
--- a/debmirror
+++ b/debmirror
@@ -536,6 +536,7 @@ use LWP::UserAgent;
 
 # Yeah, I use too many global variables in this program.
 our $mirrordir;
+our @config_files;
 our ($debug, $progress, $verbose, $passive, $skippackages, $getcontents, $i18n);
 our ($ua, $proxy, $ftp);
 our (@dists, @sections, @arches, @ignores, @excludes, @includes);
@@ -580,8 +581,19 @@ my $HOME;
 ($HOME = $ENV{'HOME'}) or die "HOME not defined in environment!\n";
 
 # Load in config files
-require "/etc/debmirror.conf" if -r "/etc/debmirror.conf";
-require "$HOME/.debmirror.conf" if -r "$HOME/.debmirror.conf";
+Getopt::Long::Configure qw(pass_through);
+GetOptions( 'config-file=s' => \@config_files, );
+@config_files=split(/,/,join(',',@config_files));
+
+if (@config_files) {
+  foreach my $config_file (@config_files) {
+    die "Can't open config file $config_file!\n" if ! -r $config_file;
+    require $config_file;
+  }
+} else {
+  require "/etc/debmirror.conf" if -r "/etc/debmirror.conf";
+  require "$HOME/.debmirror.conf" if -r "$HOME/.debmirror.conf";
+}
 
 # This hash contains the releases to mirror. If both codename and suite can be
 # determined from the Release file, the codename is used in the key. If not,
@@ -626,6 +638,7 @@ my $state_cache_exptime;
 my $files_cache_version = "1.0";
 
 my $help;
+Getopt::Long::Configure qw(no_pass_through);
 GetOptions('debug'                  => \$debug,
 	   'progress|p'             => \$progress,
 	   'verbose|v'              => \$verbose,
