[Reviewer Andy] Issue704

Now looks sensible!  As before, tested by running live tests using both TCP and UDP.
What if this returns `NULL`?