diff --git a/modules/Bio/EnsEMBL/IdMapping/StableIdMapper.pm b/modules/Bio/EnsEMBL/IdMapping/StableIdMapper.pm
index c742a1060cc83ad18a9eb89ff15cdd1f12861bcd..4916ac9ab0e9dc0f6aacd1c65d5c56488947997e 100644
--- a/modules/Bio/EnsEMBL/IdMapping/StableIdMapper.pm
+++ b/modules/Bio/EnsEMBL/IdMapping/StableIdMapper.pm
@@ -692,32 +692,19 @@ sub generate_mapping_stats {
 
   # no split into known and novel for exons
   unless ( $type eq 'exon' ) {
-    if ( $known_total > 0 ) {
-      $result .= sprintf( $fmt2,
-                          'known',
-                          $stats->{'mapped_known'},
-                          $stats->{'lost_known'},
-                          $stats->{'mapped_known'}/$known_total*100 );
-    } else {    # Avoid division by zero
-      $result .= sprintf( $fmt2,
-                          'known',
-                          $stats->{'mapped_known'},
-                          $stats->{'lost_known'}, 0 );
-    }
-
-    if ( $novel_total > 0 ) {
-      $result .= sprintf( $fmt2,
-                          'novel',
-                          $stats->{'mapped_novel'},
-                          $stats->{'lost_novel'},
-                          $stats->{'mapped_novel'}/$novel_total*100 );
-    } else {    # Avoid division by zero
-      $result .= sprintf( $fmt2,
-                          'novel',
-                          $stats->{'mapped_novel'},
-                          $stats->{'lost_novel'}, 0 );
-    }
+    $result .= sprintf( $fmt2,
+	'known',
+	$stats->{'mapped_known'},
+	$stats->{'lost_known'},
+	($known_total ? $stats->{'mapped_known'}/$known_total*100 : 0)
+    );
 
+    $result .= sprintf( $fmt2,
+	'novel',
+	$stats->{'mapped_novel'},
+	$stats->{'lost_novel'},
+	($novel_total ? $stats->{'mapped_novel'}/$novel_total*100 : 0)
+    );
   } ## end unless ( $type eq 'exon' )
 
   $result .= sprintf($fmt2, 'total', $mapped_total, $lost_total,