diff --git a/modules/Bio/EnsEMBL/DBSQL/GeneAdaptor.pm b/modules/Bio/EnsEMBL/DBSQL/GeneAdaptor.pm
index f2075b09898e5c70824d9f61fe149503b5c059f8..944d5a3761e794981a6fd3ba473973a2bcf49795 100644
--- a/modules/Bio/EnsEMBL/DBSQL/GeneAdaptor.pm
+++ b/modules/Bio/EnsEMBL/DBSQL/GeneAdaptor.pm
@@ -711,9 +711,17 @@ sub store {
        $type = $gene->type;
    }
 
+   my $xref_id = 0;
+#   if (defined ($gene->relevant_xref)) {
+#     $xref_id = $gene->relevant_xref;
+#   }
+#   else {
+#     $xref_id = 0;
+#   }
+
    my $sth2 = $self->prepare("INSERT INTO gene(type, analysis_id, 
-                                               transcript_count) 
-                              VALUES('$type', $analysisId, $trans_count)" );
+                                               transcript_count, relevant_xref_id) 
+                              VALUES('$type', $analysisId, $trans_count, $xref_id)" );
    $sth2->execute();
 
    
@@ -941,6 +949,7 @@ sub get_external_name {
   return $xref;
 }
 
+
 =head2 get_external_dbname
 
   Arg [1]    : int $dbID
@@ -982,6 +991,41 @@ sub get_external_dbname {
 }
 							
 
+=head2 get_relevant_xref_id
+
+  Arg [1]    : int $dbID
+               the database identifier of the gene for which the name of
+               external db from which its external name is derived.
+  Example    : $external_dbname = $gene_adaptor->get_relevant_xref_id(42);
+  Description: Retrieves the relevant_xref_id for a gene.
+  Returntype : int
+  Exceptions : thrown if $dbId arg is not defined
+  Caller     : general
+
+=cut
+
+sub get_relevant_xref_id {
+  my ($self, $dbID) = @_;
+
+  if( !defined $dbID ) {
+      $self->throw("Must call with a dbID");
+  }
+
+  my $sth = $self->prepare("SELECT relevant_xref_id 
+                            FROM   gene 
+                            WHERE  gene_id = ?
+                           ");
+  $sth->execute($dbID);
+
+  my ($xref_id) = $sth->fetchrow_array();
+  if( !defined $xref_id ) {
+    return undef;
+  }
+
+  return $xref_id;
+}
+
+
 
 1;
 __END__
diff --git a/modules/Bio/EnsEMBL/Gene.pm b/modules/Bio/EnsEMBL/Gene.pm
index 8f3e1e55a69af42ebd50cf0d2075276a2e8d0ac3..89dea7b25b54e95468fe17f76bfde9c6f30c59cf 100755
--- a/modules/Bio/EnsEMBL/Gene.pm
+++ b/modules/Bio/EnsEMBL/Gene.pm
@@ -914,4 +914,34 @@ sub species {
 }
 
 
+=head2 relevant_xref
+
+  Arg [1]    : int $relevant_xref_id
+  Example    : $gene->relevant_xref(42);
+  Description: get/set/lazy_loaded relevant_xref_id for this gene
+  Returntype : int
+  Exceptions : none
+  Caller     : general
+
+=cut
+
+sub relevant_xref{
+
+    my ($self,$value) = @_;
+    
+    if( defined $value ) {
+      $self->{'relevant_xref'} = $value;
+      return;
+    }
+
+    if( exists $self->{'relevant_xref'} ) {
+      return $self->{'relevant_xref'};
+    }
+
+    $self->{'relevant_xref'} = $self->adaptor->get_relevant_xref_id($self->dbID);
+
+    return $self->{'relevant_xref'};
+}
+
+
 1;