The problem is that md5.h, RC4.h and RC4.mm need #ifdef __cplusplus extern "C" { #endif #ifdef __cplusplus } #endif around them, and whichever header declared WirelessEncrypt needed those around just that declaration. The XCode preview I have is new enough to be bitter about some missing Appkit/Appkit.h imports, some declarations inside instead of at the start of code blocks, and something else I'm now forgetting. I'm mobile, but if I can get a diff before I fall off the edge of the 3G network I will send a diff. There's also cheap GPSd integration; Not configurable from GUI, it just tries gpsd to localhost. I'll include it and if someone wants to glue gui support to it before I get to it, great.