diff --git a/changes/bug9254 b/changes/bug9254
new file mode 100644
index 0000000000000000000000000000000000000000..5179bdc52318e0c4395c351193f0c47c7669263c
--- /dev/null
+++ b/changes/bug9254
@@ -0,0 +1,4 @@
+  o Minor bugfixes:
+    - Fix a spurious compilation warning with some older versions of
+      GCC on FreeBSD. Fixes bug 9254; bugfix on 0.2.4.14-alpha.
+
diff --git a/src/or/circuitlist.c b/src/or/circuitlist.c
index 70c898005536b14529835702317e000335f163ab..5e51301cebce35d6ac31ff12970bc820bd0059ea 100644
--- a/src/or/circuitlist.c
+++ b/src/or/circuitlist.c
@@ -1642,8 +1642,10 @@ static size_t
 n_cells_in_circ_queues(const circuit_t *c)
 {
   size_t n = c->n_chan_cells.n;
-  if (! CIRCUIT_IS_ORIGIN(c))
-    n += TO_OR_CIRCUIT((circuit_t*)c)->p_chan_cells.n;
+  if (! CIRCUIT_IS_ORIGIN(c)) {
+    circuit_t *cc = (circuit_t *) c;
+    n += TO_OR_CIRCUIT(cc)->p_chan_cells.n;
+  }
   return n;
 }