Perhaps the "d" should be included in the suffix set. Let's see whether it can be prededed by suffixy letters: cat bio-f-eva-gut.wds \ | sed \ -e 's/^/ /' \ -e 's/\(.d\)/ \1 /g' \ | tr ' ' '\012' \ | egrep -e 'd' \ | sort | uniq -c | expand | sort +0 -1nr \ > .foo Result: 1733 ed 507 d 145 hd 73 ld 27 od 13 yd 7 ad Let's look at the '[loya]d' words: foreach f ( l o y a ) echo '=== '$f cat bio-f-eva-gut.dic \ | egrep -e "$f"'d' end al.al.dy al.dy che.ol.dy ch.l.d.aiin d.air.ol.dy d.al.dy d.ol.dy k.al.dy k.ol.dy l.d l.d.aiin l.d.al ld.al.or l.d.ar ld.chey ld.dy l.d.ol l.dy l.ke.ol.dy l.l.d.ar l.ol.dy ok.al.dy okee.dy.l.dy ok.ol.dy ol.d ol.d.a ol.d.air ol.d.y ol.k.ol.d.y ot.al.d.y ote.ol.d.y otoldy p.ol.d.ak.y p.ol.d.she.dy pshe.al.dy pshe.ol.dy qokaldy qokoldy qok.y.l.d.d.y q.ol.d.y qot.al.d.y rche.al.d shed.al.d.y sheol.d.y sh.l.d.y sh.ol.d.y s.ol.d.y t.ol.d.al yshe.al.d.y chckh.od.y che.od.y d.ar.od.y lk.od.al l.od od.aiin od.al od.ar odched.y oddche.y od.y ot.ar.od.l otee.od.y p.ar.od.y qod.aiin qod.ar qod.che.d qod.ee.d.y qodee.y qod.y qod.yke.y sh.od.y s.od.ar chckh.yd che.d.che.yd.aiin d.air.yd.y dsh.ol.yd olt.yd.y qok.yd.y yd.aiin yd.air.ol yd.ar.al yd.ar.she.y yd.y ch.ad.y d.ar.ad.y ok.ad.y ot.ad.y qok.ad.y t.ad.y so it seems that -od -ad -ld -yd are letters, as well as qod Let's look again at suffixes, ab initio: cat bio-f-eva-gut.wds \ | sed \ -e 's/\([[oaydirslmn]*\)$/- -\1/' \ | egrep -e '- -' \ | gawk '/./ {print $2}' \ | sort | uniq -c | expand | sort +0 -1nr \ > .foo It seems that the following is the "suffix alphabet": -[aoydlsm] -i*n -i*r