diff --git a/modules/Bio/EnsEMBL/Map/DBSQL/DitagAdaptor.pm b/modules/Bio/EnsEMBL/Map/DBSQL/DitagAdaptor.pm
index 057662dc254b72d2e15a245892dbda76f561bf3c..808d9096b4dba8517d4fd2583fb5eb4875f7e7b6 100644
--- a/modules/Bio/EnsEMBL/Map/DBSQL/DitagAdaptor.pm
+++ b/modules/Bio/EnsEMBL/Map/DBSQL/DitagAdaptor.pm
@@ -269,7 +269,8 @@ sub store {
     $sth->execute($ditag->name, $ditag->type);
     if($sth->fetchrow() > 0){
       warning( "Ditag with name/type ".$ditag->name." / ".$ditag->type.
-               " is already stored in this database." );
+               " is already stored in this database.\n".
+	       "Use $da->update_ditag() instead.");
       next TAG;
     }
 
@@ -329,6 +330,30 @@ sub print_creation {
 }
 
 
+=head2 update_ditag
+
+  Arg [1]    : ditag to update
+  Description: update an existing ditag with new values
+  Returntype : 1 on success
+
+=cut
+
+sub update_ditag {
+  my ($self, $ditag) = @_;
+
+  my $sth = $self->prepare( "UPDATE ditag SET name=?, type=?, tag_count=?, sequence=? where ditag_id=?;" );
+  my $result =$sth->execute(
+                            $ditag->name,
+                            $ditag->type,
+                            $ditag->tag_count,
+                            $ditag->sequence,
+                            $ditag->dbID,
+                           );
+
+  return $result;
+}
+
+
 =head2 list_dbIDs
 
   Args       : None