diff --git a/changes/bug30021 b/changes/bug30021
new file mode 100644
index 0000000000000000000000000000000000000000..2a887f3cf2b17db9940ca500d691e1e5ea7da0f5
--- /dev/null
+++ b/changes/bug30021
@@ -0,0 +1,8 @@
+  o Minor bugfixes (TLS protocol, integration tests):
+    - When classifying a client's selection of TLS ciphers, if the client
+      ciphers are not yet available, do not cache the result. Previously,
+      we had cached the unavailability of the cipher list and never looked
+      again, which in turn led us to assume that the client only supported
+      the ancient V1 link protocol.  This, in turn, was causing Stem
+      integration tests to stall in some cases.
+      Fixes bug 30021; bugfix on 0.2.4.8-alpha.
diff --git a/src/lib/tls/tortls_openssl.c b/src/lib/tls/tortls_openssl.c
index f9f7a7a179d97c30e25af244a02a78826345dd0b..b40f948a3bdc85557a9712980d21456e0348a98a 100644
--- a/src/lib/tls/tortls_openssl.c
+++ b/src/lib/tls/tortls_openssl.c
@@ -905,7 +905,7 @@ tor_tls_classify_client_ciphers(const SSL *ssl,
     smartlist_free(elts);
   }
  done:
-  if (tor_tls)
+  if (tor_tls && peer_ciphers)
     return tor_tls->client_cipher_list_type = res;
 
   return res;