op->o_dn = op->o_req_dn;
                        op->o_ndn = op->o_req_ndn;
                }
-               isproxyauthz = ldap_back_is_proxy_authz( op, rs, 0, binddn, bindcred );
+               isproxyauthz = ldap_back_is_proxy_authz( op, rs, sendok, binddn, bindcred );
+               if ( isproxyauthz == -1 ) {
+                       return NULL;
+               }
                if ( op->o_tag == LDAP_REQ_BIND ) {
                        op->o_dn = save_o_dn;
                        op->o_ndn = save_o_ndn;
         */
        if ( LDAP_BACK_CONN_ISIDASSERT( lc ) ) {
                if ( BER_BVISEMPTY( &binddn ) && BER_BVISEMPTY( &bindcred ) ) {
-                       ldap_back_is_proxy_authz( op, rs, 0, &binddn, &bindcred );
+                       /* if we got here, it shouldn't return result */
+                       (void)ldap_back_is_proxy_authz( op, rs,
+                               LDAP_BACK_DONTSEND, &binddn, &bindcred );
                }
                (void)ldap_back_proxy_authz_bind( lc, op, rs, sendok, &binddn, &bindcred );
                goto done;
                rs->sr_err = LDAP_UNWILLING_TO_PERFORM;
                if ( sendok & LDAP_BACK_SENDERR ) {
                        send_ldap_result( op, rs );
+                       dobind = -1;
                }
                goto done;
        }
                                rs->sr_err = LDAP_INAPPROPRIATE_AUTH;
                                if ( sendok & LDAP_BACK_SENDERR ) {
                                        send_ldap_result( op, rs );
+                                       dobind = -1;
                                }
 
                        } else {
                                if ( li->li_idassert_flags & LDAP_BACK_AUTH_PRESCRIPTIVE ) {
                                        if ( sendok & LDAP_BACK_SENDERR ) {
                                                send_ldap_result( op, rs );
+                                               dobind = -1;
                                        }
 
                                } else {