rs->sr_text = "txn_abort (no-op) failed";
                } else {
                        rs->sr_err = LDAP_NO_OPERATION;
+                       ltid = NULL;
                        goto return_results;
                }
 
 
        if( ltid != NULL ) {
                TXN_ABORT( ltid );
-               op->o_private = NULL;
        }
+       op->o_private = NULL;
 
        if( postread_ctrl != NULL ) {
                slap_sl_free( (*postread_ctrl)->ldctl_value.bv_val, op->o_tmpmemctx );
 
                        rs->sr_text = "txn_abort (no-op) failed";
                } else {
                        rs->sr_err = LDAP_NO_OPERATION;
+                       ltid = NULL;
                        goto return_results;
                }
        } else {
 
        if( ltid != NULL ) {
                TXN_ABORT( ltid );
-               op->o_private = NULL;
        }
+       op->o_private = NULL;
 
        send_ldap_result( op, rs );
        if ( !SLAP_SHADOW( op->o_bd ))
 
                        rs->sr_text = "txn_abort (no-op) failed";
                } else {
                        rs->sr_err = LDAP_NO_OPERATION;
+                       ltid = NULL;
                        goto return_results;
                }
        } else {
 done:
        if( ltid != NULL ) {
                TXN_ABORT( ltid );
-               op->o_private = NULL;
        }
+       op->o_private = NULL;
 
        if( e != NULL ) {
                bdb_unlocked_cache_return_entry_w (&bdb->bi_cache, e);
 
                if(( rs->sr_err=TXN_ABORT( ltid )) != 0 ) {
                        rs->sr_text = "txn_abort (no-op) failed";
                } else {
-                       rs->sr_err = LDAP_SUCCESS;
+                       rs->sr_err = LDAP_NO_OPERATION;
+                       ltid = NULL;
                        goto return_results;
                }
 
 
        if( ltid != NULL ) {
                TXN_ABORT( ltid );
-               op->o_private = NULL;
        }
+       op->o_private = NULL;
 
        if( preread_ctrl != NULL ) {
                slap_sl_free( (*preread_ctrl)->ldctl_value.bv_val, op->o_tmpmemctx );