This is a 'work in progress' source (more accurately 'abandoned work no longer in progress') of a program to solve monalphabetic subsitution cyphers, or the kind commonly published in newspapers as 'cryptograms'. It is definitely on the right tracks, and probably doesn't need more than a day or two's work to finish, but I lost interest and ran out of time. Currently, it requires the puzzle parameters to be set up manually within the source, and it is rather sensitive to the starting conditions, ie the order in which the encrypted words are given. A good solution to this problem would not be. This is the quality of code that I once would have been too embarassed to let it be seen by other programmers, but with old age setting in I've come to realise that very often it's valuable for someone to have even a half-assed piece of code to work from if they're in need of help. Should anyone be kind enough to finish this program off so it works consistently well, I would greatly appreciate a finished copy back from you. The approach of this algorithm is to find words which match the pattern of any of the encrypted words (eg XQQZ could be FOOT or HOOF etc), and then using that pattern, apply it to other words in the problem. After each application, recurse to see if the partially formed word reduces the search space and reinforces our belief that the original guess was right, or leads us to a dead end with most of the puzzle undecyphered. I'm told that a genetic algorithm is also a good match for this problem, but you'll find none of that in here. (I did try one but it made my partial solutions worse, not better) The support code for this (the dawg stuff) is in ../spell Graham Toal