diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc
index e3b0408..bdc9ef5 100644
--- a/quic/core/quic_session.cc
+++ b/quic/core/quic_session.cc
@@ -25,6 +25,7 @@
 #include "quic/platform/api/quic_ptr_util.h"
 #include "quic/platform/api/quic_server_stats.h"
 #include "quic/platform/api/quic_stack_trace.h"
+#include "common/platform/api/quiche_text_utils.h"
 
 using spdy::SpdyPriority;
 
@@ -368,8 +369,11 @@
 }
 
 void QuicSession::OnMessageReceived(absl::string_view message) {
-  QUIC_DVLOG(1) << ENDPOINT << "Received message, length: " << message.length()
-                << ", " << message;
+  QUIC_DVLOG(1) << ENDPOINT << "Received message of length "
+                << message.length();
+  QUIC_DVLOG(2) << ENDPOINT << "Contents of message of length "
+                << message.length() << ":" << std::endl
+                << quiche::QuicheTextUtils::HexDump(message);
 }
 
 void QuicSession::OnHandshakeDoneReceived() {
diff --git a/quic/masque/masque_server_bin.cc b/quic/masque/masque_server_bin.cc
index 17fee23..d5a5d9f 100644
--- a/quic/masque/masque_server_bin.cc
+++ b/quic/masque/masque_server_bin.cc
@@ -14,6 +14,7 @@
 #include "quic/platform/api/quic_flags.h"
 #include "quic/platform/api/quic_logging.h"
 #include "quic/platform/api/quic_socket_address.h"
+#include "quic/platform/api/quic_system_event_loop.h"
 
 DEFINE_QUIC_COMMAND_LINE_FLAG(int32_t,
                               port,
@@ -42,6 +43,7 @@
                               "open and legacy. Defaults to open.");
 
 int main(int argc, char* argv[]) {
+  QuicSystemEventLoop event_loop("masque_server");
   const char* usage = "Usage: masque_server [options]";
   std::vector<std::string> non_option_args =
       quic::QuicParseCommandLineFlags(usage, argc, argv);
diff --git a/quic/masque/masque_utils.cc b/quic/masque/masque_utils.cc
index 17dec0d..cd19602 100644
--- a/quic/masque/masque_utils.cc
+++ b/quic/masque/masque_utils.cc
@@ -8,17 +8,16 @@
 
 ParsedQuicVersionVector MasqueSupportedVersions() {
   QuicVersionInitializeSupportForIetfDraft();
-  ParsedQuicVersion version = UnsupportedQuicVersion();
-  for (const ParsedQuicVersion& vers : AllSupportedVersions()) {
-    // Find the first version that supports IETF QUIC.
-    if (vers.HasIetfQuicFrames() && vers.UsesTls()) {
-      version = vers;
-      break;
+  ParsedQuicVersionVector versions;
+  for (const ParsedQuicVersion& version : AllSupportedVersions()) {
+    // Use all versions that support IETF QUIC.
+    if (version.UsesHttp3()) {
+      QuicEnableVersion(version);
+      versions.push_back(version);
     }
   }
-  QUICHE_CHECK(version.IsKnown());
-  QuicEnableVersion(version);
-  return {version};
+  QUICHE_CHECK(!versions.empty());
+  return versions;
 }
 
 QuicConfig MasqueEncapsulatedConfig() {
diff --git a/quic/tools/quic_server_bin.cc b/quic/tools/quic_server_bin.cc
index 6ed8e99..c971367 100644
--- a/quic/tools/quic_server_bin.cc
+++ b/quic/tools/quic_server_bin.cc
@@ -9,10 +9,12 @@
 
 #include "quic/core/quic_versions.h"
 #include "quic/platform/api/quic_flags.h"
+#include "quic/platform/api/quic_system_event_loop.h"
 #include "quic/tools/quic_epoll_server_factory.h"
 #include "quic/tools/quic_toy_server.h"
 
 int main(int argc, char* argv[]) {
+  QuicSystemEventLoop event_loop("quic_server");
   const char* usage = "Usage: quic_server [options]";
   std::vector<std::string> non_option_args =
       quic::QuicParseCommandLineFlags(usage, argc, argv);
