diff --git a/modules/Bio/EnsEMBL/Exon.pm b/modules/Bio/EnsEMBL/Exon.pm index 7d03eb20197a290e8a104389c5893ef9f0f1e377..2181223b158cc4923781cac6c63bbce27270674e 100755 --- a/modules/Bio/EnsEMBL/Exon.pm +++ b/modules/Bio/EnsEMBL/Exon.pm @@ -791,7 +791,7 @@ sub slice { if ( defined($slice) ) { # If a new slice was provided, flush the internal sequence cache and - # transcer all supporting evidence to the new slice. + # transfer all supporting evidence to the new slice. delete $self->{'_seq_cache'}; @@ -799,7 +799,17 @@ sub slice { my @new_features; for my $old_feature ( @{ $self->{'_supporting_evidence'} } ) { - my $new_feature = $old_feature->transfer($slice); + + my $new_feature; + + if ( defined( $old_feature->slice() ) ) { + $new_feature = $old_feature->transfer($slice); + } else { + # If the old feature does not have a slice, assume transfer is + # not necessary. + $new_feature = $old_feature; + } + push( @new_features, $new_feature ); }