diff --git a/agent/tcf/main/gdb-rsp.c b/agent/tcf/main/gdb-rsp.c
index 59e4912..8f73d89 100644
--- a/agent/tcf/main/gdb-rsp.c
+++ b/agent/tcf/main/gdb-rsp.c
@@ -675,7 +675,7 @@
     GdbThread * t = find_thread(c, c->cur_g_pid, c->cur_g_tid);
     if (t != NULL) {
         unsigned i;
-        add_res_str(c, t->bp_cnt > 0 ? "T05" : "T00");
+        add_res_str(c, "T05");
         add_res_str(c, "thread:");
         add_res_ptid(c, c->cur_g_pid, c->cur_g_tid);
         add_res_ch(c, ';');
diff --git a/agent/tcf/services/runctrl.c b/agent/tcf/services/runctrl.c
index 85fa9d0..573c479 100644
--- a/agent/tcf/services/runctrl.c
+++ b/agent/tcf/services/runctrl.c
@@ -882,23 +882,6 @@
     Context * grp = context_get_group(ctx, CONTEXT_GROUP_INTERCEPT);
     int err = 0;
 
-    EXT(grp)->reverse_run = 0;
-    switch (mode) {
-    case RM_REVERSE_RESUME:
-    case RM_REVERSE_STEP_OVER:
-    case RM_REVERSE_STEP_INTO:
-    case RM_REVERSE_STEP_OVER_LINE:
-    case RM_REVERSE_STEP_INTO_LINE:
-    case RM_REVERSE_STEP_OUT:
-    case RM_REVERSE_STEP_OVER_RANGE:
-    case RM_REVERSE_STEP_INTO_RANGE:
-    case RM_REVERSE_UNTIL_ACTIVE:
-        EXT(grp)->reverse_run = 1;
-        break;
-    }
-
-    if (context_has_state(ctx)) start_step_mode(ctx, c, mode, count, range_start, range_end);
-
     if (ctx->exited) {
         err = ERR_ALREADY_EXITED;
     }
@@ -908,13 +891,33 @@
     else if (count < 1) {
         err = EINVAL;
     }
-    else if (resume_context_tree(ctx) < 0) {
-        err = errno;
+
+    if (!err) {
+        EXT(grp)->reverse_run = 0;
+        switch (mode) {
+        case RM_REVERSE_RESUME:
+        case RM_REVERSE_STEP_OVER:
+        case RM_REVERSE_STEP_INTO:
+        case RM_REVERSE_STEP_OVER_LINE:
+        case RM_REVERSE_STEP_INTO_LINE:
+        case RM_REVERSE_STEP_OUT:
+        case RM_REVERSE_STEP_OVER_RANGE:
+        case RM_REVERSE_STEP_INTO_RANGE:
+        case RM_REVERSE_UNTIL_ACTIVE:
+            EXT(grp)->reverse_run = 1;
+            break;
+        }
+
+        if (context_has_state(ctx)) start_step_mode(ctx, c, mode, count, range_start, range_end);
+
+        if (resume_context_tree(ctx) < 0) {
+            err = errno;
+            cancel_step_mode(ctx);
+        }
     }
 
     assert(err || !ext->intercepted);
     if (err) {
-        cancel_step_mode(ctx);
         errno = err;
         return -1;
     }
