
1.  The problem was caused by an overflow in the arithmetic coder
    due to long strings of repeated characters.  This has been
    fixed.

2.  The program now tests for repeated strings and bypasses the
    scan procedure.  This has improved the performance significantly
    for the slowest files.

3.  I have included all the source files and executables. Most of
    the changes are in MODEL.C.  I have made some minor changes to
    some of the other routines, such as correcting spelling mistakes.
 
4.  I have checked the underflow situation at end of file, and I am
    still convinced that my method works.  The version of the
    arithetic coding algorithm published in the CACM presents random
    bits to the decoder at end of file, so that the final value output
    by the coder must include enough bits to allow the final symbol
    to be resolved no matter what follows.  This means outputting the
    underflow bits plus two more to ensure the input value is bracketed
    by the high and low limits.

    I get around this problem by returning zeroes after the decoder
    detects end of file.

Thank you for the chance to fix the problems.

                                                 Charles.
