Rewrite siglevels again and tweak the siglevel testing slightly.