diff --git a/modules/Bio/EnsEMBL/Gene.pm b/modules/Bio/EnsEMBL/Gene.pm
index aa59169f921aaf7323d443043574488a257d8198..4b75fb943670add3c86876395a51cd532c905608 100755
--- a/modules/Bio/EnsEMBL/Gene.pm
+++ b/modules/Bio/EnsEMBL/Gene.pm
@@ -151,6 +151,7 @@ sub new {
     @_
     );
 
+
   if ($transcripts) {
     $self->{'_transcript_array'} = $transcripts;
     $self->recalculate_coordinates();
@@ -1133,7 +1134,14 @@ sub transform {
     if ( !@segments ) {
       return undef;
     }
-    $self->get_all_Transcripts();
+  }
+
+  #
+  # If you are transforming the gene then make sure the transcripts and exons are loaded
+  #
+
+  foreach my $tran (@{$self->get_all_Transcripts}){
+    $tran->get_all_Exons();
   }
 
   if( exists $self->{'_transcript_array'} ) {