Improve server property handling

This is the same pull request as my previous one  (#1114) just on a new branch so I can get on with using master internally. The previous PR failed CI twice but there were no problems with it during my testing, so there are still some 'random' failures happing in Travis :(