diff --git a/quic/core/quic_dispatcher.cc b/quic/core/quic_dispatcher.cc
index d048e60..148c73b 100644
--- a/quic/core/quic_dispatcher.cc
+++ b/quic/core/quic_dispatcher.cc
@@ -1148,11 +1148,6 @@
   return false;
 }
 
-const QuicTransportVersionVector&
-QuicDispatcher::GetSupportedTransportVersions() {
-  return version_manager_->GetSupportedTransportVersions();
-}
-
 const ParsedQuicVersionVector& QuicDispatcher::GetSupportedVersions() {
   return version_manager_->GetSupportedVersions();
 }
diff --git a/quic/core/quic_dispatcher.h b/quic/core/quic_dispatcher.h
index 92c7320..ca83a79 100644
--- a/quic/core/quic_dispatcher.h
+++ b/quic/core/quic_dispatcher.h
@@ -213,8 +213,6 @@
     return time_wait_list_manager_.get();
   }
 
-  const QuicTransportVersionVector& GetSupportedTransportVersions();
-
   const ParsedQuicVersionVector& GetSupportedVersions();
 
   const ParsedQuicVersionVector& GetSupportedVersionsWithQuicCrypto();
diff --git a/quic/core/quic_version_manager.cc b/quic/core/quic_version_manager.cc
index 9ca86f9..7f49eba 100644
--- a/quic/core/quic_version_manager.cc
+++ b/quic/core/quic_version_manager.cc
@@ -32,12 +32,6 @@
 
 QuicVersionManager::~QuicVersionManager() {}
 
-const QuicTransportVersionVector&
-QuicVersionManager::GetSupportedTransportVersions() {
-  MaybeRefilterSupportedVersions();
-  return filtered_transport_versions_;
-}
-
 const ParsedQuicVersionVector& QuicVersionManager::GetSupportedVersions() {
   MaybeRefilterSupportedVersions();
   return filtered_supported_versions_;
diff --git a/quic/core/quic_version_manager.h b/quic/core/quic_version_manager.h
index 9c742f5..d3e62e4 100644
--- a/quic/core/quic_version_manager.h
+++ b/quic/core/quic_version_manager.h
@@ -18,10 +18,6 @@
   explicit QuicVersionManager(ParsedQuicVersionVector supported_versions);
   virtual ~QuicVersionManager();
 
-  // Returns currently supported QUIC versions.
-  // TODO(nharper): Remove this method once it is unused.
-  const QuicTransportVersionVector& GetSupportedTransportVersions();
-
   // Returns currently supported QUIC versions. This vector has the same order
   // as the versions passed to the constructor.
   const ParsedQuicVersionVector& GetSupportedVersions();
