diff --git a/floor0.c b/floor0.c
index 5c58f771bedd4c56a115da295dd8aa005aae08df..50ff5d1a4293c5e043ae610414527ced6bd8d8c8 100644
--- a/floor0.c
+++ b/floor0.c
@@ -327,6 +327,7 @@ static vorbis_info_floor *floor0_unpack (vorbis_info *vi,oggpack_buffer *opb){
   for(j=0;j<info->numbooks;j++){
     info->books[j]=oggpack_read(opb,8);
     if(info->books[j]<0 || info->books[j]>=ci->books)goto err_out;
+    if(ci->book_param[info->books[j]]->maptype==0)goto err_out;
   }
   return(info);