diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3e9cbf5..52f4b4e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
 The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
 and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
 
+## [1.7.1] - 2023-01-28
+### Fixed
+- A bug leading to the loss of detailed TE subtype info in the final annotation GFF3 file.
+
 ## [1.7.0] - 2022-12-31
 ### Changed
 - Better robunsteness for the dependency installation script.
diff --git a/Example_Outputs/CPG_1a.nuclear_genome.tidy.gff3.gz b/Example_Outputs/CPG_1a.nuclear_genome.tidy.gff3.gz
index 3fe1c06..8f88134 100644
Binary files a/Example_Outputs/CPG_1a.nuclear_genome.tidy.gff3.gz and b/Example_Outputs/CPG_1a.nuclear_genome.tidy.gff3.gz differ
diff --git a/Manual_20221231.docx b/Manual_20230128.docx
similarity index 95%
rename from Manual_20221231.docx
rename to Manual_20230128.docx
index f557b82..f9f652a 100644
Binary files a/Manual_20221231.docx and b/Manual_20230128.docx differ
diff --git a/README.md b/README.md
index 3bda02c..be1b0c6 100644
--- a/README.md
+++ b/README.md
@@ -22,6 +22,7 @@ Jia-Xing Yue & Gianni Liti. (2018) Long-read sequencing data analysis for yeasts
 Jia-Xing Yue, Jing Li, Louise Aigrain, Johan Hallin, Karl Persson, Karen Oliver, Anders Bergström, Paul Coupland, Jonas Warringer, Marco Cosentino Lagomarsino, Gilles Fischer, Richard Durbin, Gianni Liti. (2017) Contrasting evolutionary genome dynamics between domesticated and wild yeasts. *Nature Genetics*, 49:913-924.
 
 ## Release history
+* v1.7.1 Released on 2022/01/28
 * v1.7.0 Released on 2022/12/31
 * v1.6.0 Released on 2019/10/03
 * v1.5.0 Released on 2019/05/13
diff --git a/scripts/sort_gff3.pl b/scripts/sort_gff3.pl
index 9a308af..43e3c48 100755
--- a/scripts/sort_gff3.pl
+++ b/scripts/sort_gff3.pl
@@ -6,7 +6,7 @@
 ##############################################################
 #  script: sort_gff3.pl
 #  author: Jia-Xing Yue (GitHub ID: yjx1217)
-#  last edited: 2022.12.11
+#  last edited: 2023.01.28
 #  description: sort gff3 file by the input multi-fasta genome file
 #  example: perl sort_gff3.pl -i raw.gff3 -t genome_tag -o sorted.gff3 -r genome.fa(.gz)
 ##############################################################
@@ -46,12 +46,17 @@
     foreach my $gene_id (sort {$gff{$a}{'gene_start'} <=> $gff{$b}{'gene_start'} or $gff{$a}{'gene_end'} <=> $gff{$b}{'gene_end'}} @genes_on_chr) {
 	my $gene_name = $gff{$gene_id}{'gene_name'};
 	my $gene_type = $gff{$gene_id}{'gene_type'};
+	my $mobile_element_type = $gff{$gene_id}{'mobile_element_type'};
 	my $gene_start = $gff{$gene_id}{'gene_start'};
 	my $gene_end = $gff{$gene_id}{'gene_end'};
 	my $gene_score = $gff{$gene_id}{'gene_score'};
 	my $gene_strand = $gff{$gene_id}{'gene_strand'};
 	my $gene_phase = $gff{$gene_id}{'gene_phase'};
-	print $output_fh "$chr\t$tag\t$gene_type\t$gene_start\t$gene_end\t$gene_score\t$gene_strand\t$gene_phase\tID=$gene_id;Name=$gene_name\n";
+	if ($gene_type eq "mobile_element") {
+	    print $output_fh "$chr\t$tag\t$gene_type\t$gene_start\t$gene_end\t$gene_score\t$gene_strand\t$gene_phase\tID=$gene_id;Name=$gene_name;mobile_element_type=$mobile_element_type\n";
+	} else {
+	    print $output_fh "$chr\t$tag\t$gene_type\t$gene_start\t$gene_end\t$gene_score\t$gene_strand\t$gene_phase\tID=$gene_id;Name=$gene_name\n";
+	}
 	if ($gene_type eq "gene") {
 	    foreach my $mRNA_id (sort {$gff{$gene_id}{'mRNA'}{$a}{'mRNA_index'} <=> $gff{$gene_id}{'mRNA'}{$b}{'mRNA_index'}} keys %{$gff{$gene_id}{'mRNA'}}) {
 		my $mRNA_index = $gff{$gene_id}{'mRNA'}{$mRNA_id}{'mRNA_index'};
@@ -162,6 +167,7 @@ sub parse_gff_file {
     my $gene_id;
     my $gene_name;
     my $gene_type;
+    my $mobile_element_type;
     my $mRNA_index;
     while (<$fh>) {
 	chomp;
@@ -201,6 +207,19 @@ sub parse_gff_file {
             $gff{$gene_id}{'gene_source'} = $source;
             $gff{$gene_id}{'gene_score'} = $score;
             $gff{$gene_id}{'gene_phase'} = $phase;
+	} elsif ($type =~ /(mobile_element)/) {
+	    $gene_type = $type;
+	    ($gene_id, $gene_name, $mobile_element_type) = ($attributes =~ /ID=([^;]+);\S*Name=([^;]+);mobile_element_type=([^;]+)/);
+	    $gff{$gene_id}{'gene_name'} = $gene_name;
+	    $gff{$gene_id}{'gene_type'} = $gene_type;
+	    $gff{$gene_id}{'mobile_element_type'} = $mobile_element_type;
+            $gff{$gene_id}{'gene_chr'} = $chr;
+            $gff{$gene_id}{'gene_start'} = $start;
+            $gff{$gene_id}{'gene_end'} = $end;
+            $gff{$gene_id}{'gene_strand'} = $strand;
+            $gff{$gene_id}{'gene_source'} = $source;
+            $gff{$gene_id}{'gene_score'} = $score;
+            $gff{$gene_id}{'gene_phase'} = $phase;
 	} elsif ($type !~ /(exon|CDS|mRNA|UTR)/) {
 	    # e.g. type = TY, X_element, Y_prime_element ...
 	    $gene_type = $type;