diff --git a/src/libraries/libisc-new/src/isc_udp.c b/src/libraries/libisc-new/src/isc_udp.c
index d274ff1c64ebd89d85c7feb17a52497d58180768..bc6c2405e094e2588651a20e3aa388ac5365877e 100644
--- a/src/libraries/libisc-new/src/isc_udp.c
+++ b/src/libraries/libisc-new/src/isc_udp.c
@@ -344,7 +344,9 @@ isc_bindudp(IscSession *scb,
 		  ! (ia = isc_mkudpaddress(address, service, af))
 		  || (bind(scb->fd,
 			   (struct sockaddr *) &ia->ip.saddr,
-			   sizeof(ia->ip.saddr)) < 0)))
+			   CHOOSE_IP4OR6(ia->ip.saddr,
+					 sizeof(struct sockaddr_in),
+					 sizeof(struct sockaddr_in6))) < 0)))
     return -1;
 
   scb->state = ISC_STATE_RUNNING;