I would like to point out that identifiers like "__UMCONNECTION_H___" and "__PACKETREADER_H__" do not fit to the expected naming conventions of the C/C++ language standard.
Would you like to adjust your selection for unique names?
What part of the expected naming convention of the C/C++ language standard would that be in violation of?
ISO/IEC 14882-2003, Section 126.96.36.199.2 :)
I recommend to delete double underscores from identifiers like include guards in the affected header files to make them a bit more standard-compliant.
Feel free to supply a pull request for this one, as of now since it's not an issue I'm not going to fix it.