diff --git a/changes/disable_pathbias_messages b/changes/disable_pathbias_messages
new file mode 100644
index 0000000000000000000000000000000000000000..3bc996347bb18c914ead31d07830a3e90bd46499
--- /dev/null
+++ b/changes/disable_pathbias_messages
@@ -0,0 +1,3 @@
+  o Disabeled features
+    - Downgrade path-bias warning messages to INFO. We'll try to get them
+      working better in 0.2.4. Fixes bug 6475; bugfix on 0.2.3.17-beta.
diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c
index f11bebf7c9354c6ff84cbd2769c19e6b221f75cd..fcd13dc1d36811cf7b2bffa0d5366b10022857bb 100644
--- a/src/or/circuitbuild.c
+++ b/src/or/circuitbuild.c
@@ -2656,7 +2656,7 @@ pathbias_count_first_hop(origin_circuit_t *circ)
     if (circ->has_opened && circ->path_state != PATH_STATE_DID_FIRST_HOP) {
       if ((rate_msg = rate_limit_log(&first_hop_notice_limit,
                                      approx_time()))) {
-        log_notice(LD_BUG,
+        log_info(LD_BUG,
                 "Opened circuit is in strange path state %s. "
                 "Circuit is a %s currently %s. %s",
                 pathbias_state_to_string(circ->path_state),
@@ -2683,7 +2683,7 @@ pathbias_count_first_hop(origin_circuit_t *circ)
         } else {
           if ((rate_msg = rate_limit_log(&first_hop_notice_limit,
                   approx_time()))) {
-            log_notice(LD_BUG,
+            log_info(LD_BUG,
                    "Unopened circuit has strange path state %s. "
                    "Circuit is a %s currently %s. %s",
                    pathbias_state_to_string(circ->path_state),
@@ -2695,7 +2695,7 @@ pathbias_count_first_hop(origin_circuit_t *circ)
       } else {
         if ((rate_msg = rate_limit_log(&first_hop_notice_limit,
                 approx_time()))) {
-          log_notice(LD_BUG,
+          log_info(LD_BUG,
               "Unopened circuit has no known guard. "
               "Circuit is a %s currently %s. %s",
               circuit_purpose_to_string(circ->_base.purpose),
@@ -2709,7 +2709,7 @@ pathbias_count_first_hop(origin_circuit_t *circ)
     if (circ->path_state == PATH_STATE_NEW_CIRC) {
       if ((rate_msg = rate_limit_log(&first_hop_notice_limit,
                 approx_time()))) {
-        log_notice(LD_BUG,
+        log_info(LD_BUG,
             "A %s circuit is in cpath state %d (opened: %d). "
             "Circuit is a %s currently %s. %s",
             pathbias_state_to_string(circ->path_state),
@@ -2761,7 +2761,7 @@ pathbias_count_success(origin_circuit_t *circ)
       } else {
         if ((rate_msg = rate_limit_log(&success_notice_limit,
                 approx_time()))) {
-          log_notice(LD_BUG,
+          log_info(LD_BUG,
               "Succeeded circuit is in strange path state %s. "
               "Circuit is a %s currently %s. %s",
               pathbias_state_to_string(circ->path_state),
@@ -2772,7 +2772,7 @@ pathbias_count_success(origin_circuit_t *circ)
       }
 
       if (guard->first_hops < guard->circuit_successes) {
-        log_warn(LD_BUG, "Unexpectedly high circuit_successes (%u/%u) "
+        log_info(LD_BUG, "Unexpectedly high circuit_successes (%u/%u) "
                  "for guard %s=%s",
                  guard->circuit_successes, guard->first_hops,
                  guard->nickname, hex_str(guard->identity, DIGEST_LEN));
@@ -2780,7 +2780,7 @@ pathbias_count_success(origin_circuit_t *circ)
     } else {
       if ((rate_msg = rate_limit_log(&success_notice_limit,
               approx_time()))) {
-        log_notice(LD_BUG,
+        log_info(LD_BUG,
             "Completed circuit has no known guard. "
             "Circuit is a %s currently %s. %s",
             circuit_purpose_to_string(circ->_base.purpose),
@@ -2792,7 +2792,7 @@ pathbias_count_success(origin_circuit_t *circ)
     if (circ->path_state != PATH_STATE_SUCCEEDED) {
       if ((rate_msg = rate_limit_log(&success_notice_limit,
               approx_time()))) {
-        log_notice(LD_BUG,
+        log_info(LD_BUG,
             "Opened circuit is in strange path state %s. "
             "Circuit is a %s currently %s. %s",
             pathbias_state_to_string(circ->path_state),
@@ -2822,7 +2822,7 @@ entry_guard_inc_first_hop_count(entry_guard_t *guard)
     if (guard->circuit_successes/((double)guard->first_hops)
         < pathbias_get_disable_rate(options)) {
 
-      log_warn(LD_PROTOCOL,
+      log_info(LD_PROTOCOL,
                "Extremely low circuit success rate %u/%u for guard %s=%s. "
                "This might indicate an attack, or a bug.",
                guard->circuit_successes, guard->first_hops, guard->nickname,
@@ -2835,7 +2835,7 @@ entry_guard_inc_first_hop_count(entry_guard_t *guard)
                < pathbias_get_notice_rate(options)
                && !guard->path_bias_notice) {
       guard->path_bias_notice = 1;
-      log_notice(LD_PROTOCOL,
+      log_info(LD_PROTOCOL,
                  "Low circuit success rate %u/%u for guard %s=%s.",
                  guard->circuit_successes, guard->first_hops, guard->nickname,
                  hex_str(guard->identity, DIGEST_LEN));