diff --git a/folly/compression/Counters.h b/folly/compression/Counters.h
index e327b5ec85bd794470d9fc6a7a7f5ea0948cffe5..97a45b4e7a49c5d2db94f1124327fa56f2cc7fc5 100644
--- a/folly/compression/Counters.h
+++ b/folly/compression/Counters.h
@@ -69,13 +69,14 @@ namespace detail {
 /// Wrapper around the makeCompressionCounterHandler() extension point.
 class CompressionCounter {
  public:
-  CompressionCounter() {}
+  CompressionCounter() : initialized_(true) {}
   CompressionCounter(
       folly::io::CodecType codecType,
       folly::StringPiece codecName,
       folly::Optional<int> level,
       CompressionCounterKey key,
-      CompressionCounterType counterType) {
+      CompressionCounterType counterType)
+      : initialized_(false) {
     initialize_ = [=]() {
       return makeCompressionCounterHandler(
           codecType, codecName, level, key, counterType);
@@ -112,7 +113,7 @@ class CompressionCounter {
     }
   }
 
-  bool initialized_{false};
+  bool initialized_;
   folly::Function<folly::Function<void(double)>()> initialize_;
   folly::Function<void(double)> increment_;
 };
diff --git a/folly/compression/test/CompressionTest.cpp b/folly/compression/test/CompressionTest.cpp
index 4d2ccfec3fd8c83ee6a95dd46702c3701e794ee2..3cbcf01282406e321060dd17506aa4a3fc6b6703 100644
--- a/folly/compression/test/CompressionTest.cpp
+++ b/folly/compression/test/CompressionTest.cpp
@@ -464,6 +464,35 @@ static bool codecHasFlush(CodecType type) {
   return type != CodecType::BZIP2;
 }
 
+namespace {
+class NoCountersCodec : public Codec {
+ public:
+  NoCountersCodec()
+      : Codec(CodecType::NO_COMPRESSION, {}, {}, /* counters */ false) {}
+
+ private:
+  uint64_t doMaxCompressedLength(uint64_t uncompressedLength) const override {
+    return uncompressedLength;
+  }
+
+  std::unique_ptr<IOBuf> doCompress(const IOBuf* buf) override {
+    return buf->clone();
+  }
+
+  std::unique_ptr<IOBuf> doUncompress(const IOBuf* buf, Optional<uint64_t>)
+      override {
+    return buf->clone();
+  }
+};
+} // namespace
+
+TEST(CodecTest, NoCounters) {
+  NoCountersCodec codec;
+  for (size_t i = 0; i < 1000; ++i) {
+    EXPECT_EQ("hello", codec.uncompress(codec.compress("hello")));
+  }
+}
+
 class StreamingUnitTest : public testing::TestWithParam<CodecType> {
  protected:
   void SetUp() override {
diff --git a/folly/compression/test/CountersTest.cpp b/folly/compression/test/CountersTest.cpp
index 31dd8b64a6eeced72218b15762891da64c212d82..dd17a5c49e5f2333b9ba3bca9e44e567361d9abd 100644
--- a/folly/compression/test/CountersTest.cpp
+++ b/folly/compression/test/CountersTest.cpp
@@ -49,3 +49,8 @@ TEST(FollyCountersTest, AvgWorks) {
     counter += 5;
   }
 }
+
+TEST(FollyCountersTest, DefaultConstruction) {
+  CompressionCounter counter;
+  ++counter;
+}