When reading a pending datagram from a UDP socket which is bound to a IPv6 address, the generated host address doesn't contain the scopeId of the address.
The problem seems to exist on windows only. Adding the line
a.setScopeId ( QString ( ) . setNum ( sa6 -> sin6_scope_id ) );
solved the problem for me.