diff --git a/changes/bug6341 b/changes/bug6341
new file mode 100644
index 0000000000000000000000000000000000000000..04e52c7cd3b2f2ecf001b29df0894d14078e8cc5
--- /dev/null
+++ b/changes/bug6341
@@ -0,0 +1,5 @@
+  o Major bugfixes:
+    - Fix a possible crash bug when checking for deactivated circuits
+      in connection_or_flush_from_first_active_circuit(). Fixes bug 
+      6341; bugfix on 0.2.2.7-alpha. Bug report and fix received
+      pseudonymously.
diff --git a/src/or/relay.c b/src/or/relay.c
index 169286ea5defc573ea05adc5d971780f2824e6fb..791091569b9b9bb1c428803a94be719d0dbc75b6 100644
--- a/src/or/relay.c
+++ b/src/or/relay.c
@@ -2480,7 +2480,7 @@ connection_or_flush_from_first_active_circuit(or_connection_t *conn, int max,
       tor_assert(tmp == cell_ewma);
       add_cell_ewma_to_conn(conn, cell_ewma);
     }
-    if (circ != conn->active_circuits) {
+    if (!ewma_enabled && circ != conn->active_circuits) {
       /* If this happens, the current circuit just got made inactive by
        * a call in connection_write_to_buf().  That's nothing to worry about:
        * circuit_make_inactive_on_conn() already advanced conn->active_circuits