LDAP_BACK_CONN_BINDING_CLEAR( msc );
                if ( META_BACK_ONERR_STOP( mi ) ) {
                        LDAP_BACK_CONN_TAINTED_SET( mc );
-                       meta_back_release_conn( op, mc );
+                       meta_back_release_conn_lock( op, mc, 0 );
                        *mcp = NULL;
 
                        retcode = META_SEARCH_ERR;
        if ( rc != LDAP_SUCCESS ) {
                if ( META_BACK_ONERR_STOP( mi ) ) {
                        LDAP_BACK_CONN_TAINTED_SET( mc );
-                       meta_back_release_conn( op, mc );
+                       meta_back_release_conn_lock( op, mc, 0 );
                        *mcp = NULL;
                        retcode = META_SEARCH_ERR;
+                       rs->sr_err = rc;
 
                } else if ( META_BACK_ONERR_REPORT( mi ) ) {
                        candidates[ candidate ].sr_err = rc;