*((uint16_t)*dest) results in a ldrh (load halfword) instruction on an address that seems to not be halfword-aligned (?), causing a hard-fault on the samr21-xpro board (cortex-m0 architecture). The issue seems to be very similar to the one described in http://stackoverflow.com/a/21661366/124257