diff --git a/test/hciemu.c b/test/hciemu.c
index ccd6cc3..7eb8814 100644
--- a/test/hciemu.c
+++ b/test/hciemu.c
baswap(&ba, &vdev.bdaddr);
sa.sin_family = AF_INET;
memcpy(&sa.sin_addr.s_addr, &ba, sizeof(sa.sin_addr.s_addr));
- sa.sin_port = *(uint16_t *) &ba.b[4];
+ memcpy(&sa.sin_port, &ba.b[4], sizeof(sa.sin_port));
if (bind(sk, (struct sockaddr *) &sa, sizeof(sa))) {
syslog(LOG_ERR, "Can't bind socket: %s (%d)",
strerror(errno), errno);
baswap(&ba, &cp->bdaddr);
sa.sin_family = AF_INET;
memcpy(&sa.sin_addr.s_addr, &ba, sizeof(sa.sin_addr.s_addr));
- sa.sin_port = *(uint16_t *) &ba.b[4];
+ memcpy(&sa.sin_port, &ba.b[4], sizeof(sa.sin_port));
if (connect(sk, (struct sockaddr *) &sa, sizeof(sa)) < 0) {
syslog(LOG_ERR, "Can't connect: %s (%d)",
strerror(errno), errno);