diff --git a/libraries/libldap/cyrus.c b/libraries/libldap/cyrus.c
index 34cc0d8e422df5eb1ebde2c29b015a6f93c568fd..f2491f3c3841cdb2f97992c9979d3169bd2c9faf 100644
--- a/libraries/libldap/cyrus.c
+++ b/libraries/libldap/cyrus.c
@@ -335,7 +335,7 @@ sb_sasl_write( Sockbuf_IO_Desc *sbiod, void *buf, ber_len_t len)
 			return ret;
 		/* Still have something left?? */
 		if ( p->buf_out.buf_ptr != p->buf_out.buf_end ) {
-			errno = EAGAIN;
+			errno = EWOULDBLOCK;
 			return 0;
 		}
 	}
diff --git a/libraries/libldap/request.c b/libraries/libldap/request.c
index c45a7769f5935027a35b1e18b39cfc40b6dc9392..0ffd592b2187ecf700a2459bb079a813db059793 100644
--- a/libraries/libldap/request.c
+++ b/libraries/libldap/request.c
@@ -146,7 +146,7 @@ ldap_int_flush_request(
 	LDAPConn *lc = lr->lr_conn;
 
 	if ( ber_flush( lc->lconn_sb, lr->lr_ber, 0 ) != 0 ) {
-		if ( errno == EWOULDBLOCK || errno == EAGAIN ) {
+		if ( errno == EWOULDBLOCK ) {
 			/* need to continue write later */
 			lr->lr_status = LDAP_REQST_WRITING;
 			ldap_mark_select_write( ld, lc->lconn_sb );