diff --git a/modules/Bio/EnsEMBL/IdMapping/Cache.pm b/modules/Bio/EnsEMBL/IdMapping/Cache.pm
index a6768f1171cdb4cba12b38c06a575815c005b263..c12fbba0e58706f59a531513b6ff32e191e8d687 100644
--- a/modules/Bio/EnsEMBL/IdMapping/Cache.pm
+++ b/modules/Bio/EnsEMBL/IdMapping/Cache.pm
@@ -261,7 +261,9 @@ sub build_cache_from_genes {
     unless ( ref($genes) eq 'ARRAY' );
 
   # biotype filter
-  if ( $self->conf->param('biotypes') ) {
+  if ( $self->conf->param('biotypes') ||
+       $self->conf->param('not_biotypes') )
+  {
     $genes = $self->filter_biotypes($genes);
   }
   my $num_genes = scalar(@$genes);