diff --git a/modules/Bio/EnsEMBL/Gene.pm b/modules/Bio/EnsEMBL/Gene.pm
index 0a9bb76ea928da48f2d4d927a54fdfcf97d1e4dd..96caecf42a70d86f1a5e8d5fd1321f006c29bccd 100755
--- a/modules/Bio/EnsEMBL/Gene.pm
+++ b/modules/Bio/EnsEMBL/Gene.pm
@@ -823,6 +823,7 @@ sub transform {
     for my $old_transcript ( @{$self->{'_transcript_array'}} ) {
       my $new_transcript = $old_transcript->transform( @_ );
       # this can fail if gene transform failed  
+      
       return undef unless $new_transcript;
 
       if( ! defined $new_gene ) {
@@ -842,10 +843,10 @@ sub transform {
       %$new_gene = %$self;
       bless $new_gene, ref( $self );
 
-      $self->start( $low_start );
-      $self->end( $hi_end );
-      $self->strand( $strand );
-      $self->slice( $slice );
+      $new_gene->start( $low_start );
+      $new_gene->end( $hi_end );
+      $new_gene->strand( $strand );
+      $new_gene->slice( $slice );
     }
 
     $new_gene->{'_transcript_array'} = \@new_transcripts;