Hi Gregory,

The new version works for me.
If noticed that a bug that I fixed earlier, didn't make it in the version that was put into the repository.
From line 226 the code should read:

                    // Skip response strings consisting of a single termination character
                    if (nbytes_read_total == 0 && response[0] == Termination)
                        response[0] = LX200Pulsar2::Null;
                    else {
                        nbytes_read_total += nbytes_read;
                        done = true;

I have also been thinking about a way to ensure that the mutex is always locked and unlocked
properly. In the attached source file (a modified version of your code from this weekend), I have
introduced the Transaction class for this purpose.