else
        {
                LOG_ERROR("BUG: both watchpoints used, but wp_available >= 1");
-               exit(-1);
+               return ERROR_FAIL;
        }
        
        if ((retval = jtag_execute_queue()) != ERROR_OK)
        {
                LOG_ERROR("error writing EmbeddedICE registers to enable sw breakpoints");
-               exit(-1);
+               return ERROR_FAIL;
        };
        
        return ERROR_OK;
        
        if ((retval = jtag_execute_queue()) != ERROR_OK)
        {
-               LOG_ERROR("JTAG failure");
-               exit(-1);
+               return retval;
        }
        return ERROR_OK;
 }
        arm_jtag_set_instr(jtag_info, 0x4, NULL);
        
        jtag_add_runtest(1, TAP_RTI);
-       if ((jtag_execute_queue()) != ERROR_OK)
-       {
-               exit(-1);
-       }
-       
-       return ERROR_OK;
+       return jtag_execute_queue();
 }
 
 void arm7_9_enable_watchpoints(struct target_s *target)
                        else
                        {
                                LOG_ERROR("unhandled core state");
-                               exit(-1);
+                               return ERROR_FAIL;
                        }
                                
                        buf_set_u32(dbg_ctrl->value, EICE_DBG_CONTROL_DBGACK, 1, 0);
        else
        {
                LOG_ERROR("unhandled core state");
-               exit(-1);
+               return ERROR_FAIL;
        }
        
        /* deassert DBGACK and INTDIS */
        else
        {
                LOG_ERROR("unhandled core state");
-               exit(-1);
+               return ERROR_FAIL;
        }
        
        target_call_event_callbacks(target, TARGET_EVENT_RESUMED);
        
        if ((retval = jtag_execute_queue()) != ERROR_OK)
        {
-               LOG_ERROR("JTAG failure");
-               exit(-1);
+               return retval;
        }
                
        ARMV4_5_CORE_REG_MODE(armv4_5->core_cache, mode, num).valid = 1;