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 );
       }