diff --git a/misc-scripts/xref_mapping/XrefParser/ArrayExpressParser.pm b/misc-scripts/xref_mapping/XrefParser/ArrayExpressParser.pm
index 532ecc944dc9dbf475656a99e898ae772e5d973a..aee71d17a641836e5ad4aa3ee44125745d3092b7 100644
--- a/misc-scripts/xref_mapping/XrefParser/ArrayExpressParser.pm
+++ b/misc-scripts/xref_mapping/XrefParser/ArrayExpressParser.pm
@@ -40,6 +40,7 @@ sub run_script {
   my $species_id   = $ref_arg->{species_id};
   my $file         = $ref_arg->{file};
   my $verbose      = $ref_arg->{verbose};
+  my $db           = $ref_arg->{dba};
 
   if((!defined $source_id) or (!defined $species_id) or (!defined $file) ){
     croak "Need to pass source_id, species_id and file as pairs";
@@ -123,6 +124,8 @@ sub run_script {
       },
         );
     $gene_adaptor = $registry->get_adaptor($species_name, 'core', 'Gene');
+  } elsif (defined $db) {
+    $gene_adaptor = $db->get_GeneAdaptor();
   } else {
       die("Missing or unsupported project value. Supported values: ensembl, ensemblgenomes");
   }
diff --git a/misc-scripts/xref_mapping/XrefParser/RFAMParser.pm b/misc-scripts/xref_mapping/XrefParser/RFAMParser.pm
index 41105582008faf8708f30ed1362bb3c57f6cf11f..def94e241e3ae0b08a0d58b6ed70e849569785ac 100644
--- a/misc-scripts/xref_mapping/XrefParser/RFAMParser.pm
+++ b/misc-scripts/xref_mapping/XrefParser/RFAMParser.pm
@@ -33,8 +33,9 @@ sub run_script {
   my ($self, $ref_arg) = @_;
   my $source_id    = $ref_arg->{source_id};
   my $species_id   = $ref_arg->{species_id};
-  my $file        = $ref_arg->{file};
+  my $file         = $ref_arg->{file};
   my $verbose      = $ref_arg->{verbose};
+  my $core_db      = $ref_arg->{db};
 
   if((!defined $source_id) or (!defined $species_id) or (!defined $file) ){
     croak "Need to pass source_id, species_id and file as pairs";
@@ -86,6 +87,8 @@ sub run_script {
          '-species'  => $species_name,
          '-group'    => 'core',
        );
+  } elsif (defined $core_db) {
+    $dba = $core_db;
   } else {
       $registry->load_registry_from_multiple_dbs( 
       {
diff --git a/misc-scripts/xref_mapping/XrefParser/RefSeqCoordinateParser.pm b/misc-scripts/xref_mapping/XrefParser/RefSeqCoordinateParser.pm
index b855ec950ac605d9f84fae137f4894aa25137a12..b650d3e20d0b50f37aab679f67d8684887ba9845 100644
--- a/misc-scripts/xref_mapping/XrefParser/RefSeqCoordinateParser.pm
+++ b/misc-scripts/xref_mapping/XrefParser/RefSeqCoordinateParser.pm
@@ -34,6 +34,7 @@ sub run_script {
   my $species_id   = $ref_arg->{species_id};
   my $file         = $ref_arg->{file};
   my $verbose      = $ref_arg->{verbose};
+  my $db           = $ref_arg->{dba};
 
   if((!defined $source_id) or (!defined $species_id) or (!defined $file) ){
     croak "Need to pass source_id, species_id and file as pairs";
@@ -189,6 +190,9 @@ sub run_script {
       $core_dba = $registry->get_DBAdaptor($species_name,'core');
       $otherf_dba = $registry->get_DBAdaptor($species_name, 'otherfeatures');     
 
+  } elsif (defined $db) {
+    $otherf_dba = $db;
+    $core_dba = $db->dnadb();
   } else {
       die("Missing or unsupported project value. Supported values: ensembl, ensemblgenomes");
   }