diff --git a/lib/assert.cc b/lib/assert.cc
index 1aa5260..44b74c8 100644
--- a/lib/assert.cc
+++ b/lib/assert.cc
@@ -8,6 +8,8 @@
 
 namespace rlz_lib {
 
+#ifdef MUTE_EXPECTED_ASSERTS
 std::string expected_assertion_;
+#endif
 
 }  // namespace rlz_lib
diff --git a/lib/assert.h b/lib/assert.h
index 83cbadd..a31a69f 100644
--- a/lib/assert.h
+++ b/lib/assert.h
@@ -21,7 +21,7 @@
       do { \
         std::string expr_string(expr); \
         if (rlz_lib::expected_assertion_ != expr_string) { \
-          LOG_IF(FATAL, FALSE) << (expr); \
+          LOG_IF(FATAL, false) << (expr); \
         } \
       } while (0)
   #endif
@@ -37,7 +37,17 @@
 #endif
 
 namespace rlz_lib {
-  extern std::string expected_assertion_;
-};
+
+#ifdef MUTE_EXPECTED_ASSERTS
+extern std::string expected_assertion_;
+#endif
+
+inline void SetExpectedAssertion(const char* s) {
+#ifdef MUTE_EXPECTED_ASSERTS
+  expected_assertion_ = s;
+#endif
+}
+
+}  // rlz_lib
 
 #endif  // RLZ_LIB_ASSERT_H_
diff --git a/lib/lib_values_unittest.cc b/lib/lib_values_unittest.cc
index 6cd5e0b..62f55b4 100644
--- a/lib/lib_values_unittest.cc
+++ b/lib/lib_values_unittest.cc
@@ -10,9 +10,9 @@
 #include "testing/gtest/include/gtest/gtest.h"
 
 TEST(LibValuesUnittest, GetAccessPointFromName) {
-  rlz_lib::expected_assertion_ = "GetAccessPointFromName: point is NULL";
+  rlz_lib::SetExpectedAssertion("GetAccessPointFromName: point is NULL");
   EXPECT_FALSE(rlz_lib::GetAccessPointFromName("", NULL));
-  rlz_lib::expected_assertion_ = "";
+  rlz_lib::SetExpectedAssertion("");
 
   rlz_lib::AccessPoint point;
   EXPECT_FALSE(rlz_lib::GetAccessPointFromName(NULL, &point));
@@ -36,9 +36,9 @@
 
 
 TEST(LibValuesUnittest, GetEventFromName) {
-  rlz_lib::expected_assertion_ = "GetEventFromName: event is NULL";
+  rlz_lib::SetExpectedAssertion("GetEventFromName: event is NULL");
   EXPECT_FALSE(rlz_lib::GetEventFromName("", NULL));
-  rlz_lib::expected_assertion_ = "";
+  rlz_lib::SetExpectedAssertion("");
 
   rlz_lib::Event event;
   EXPECT_FALSE(rlz_lib::GetEventFromName(NULL, &event));
diff --git a/lib/string_utils_unittest.cc b/lib/string_utils_unittest.cc
index 9e7e8c4..4a12bf0 100644
--- a/lib/string_utils_unittest.cc
+++ b/lib/string_utils_unittest.cc
@@ -14,7 +14,7 @@
 #include "testing/gtest/include/gtest/gtest.h"
 
 TEST(StringUtilsUnittest, IsAscii) {
-  rlz_lib::expected_assertion_ = "";
+  rlz_lib::SetExpectedAssertion("");
 
   char bad_letters[] = {'\x80', '\xA0', '\xFF'};
   for (int i = 0; i < arraysize(bad_letters); ++i)
@@ -26,10 +26,10 @@
 }
 
 TEST(StringUtilsUnittest, HexStringToInteger) {
-  rlz_lib::expected_assertion_ = "HexStringToInteger: text is NULL.";
+  rlz_lib::SetExpectedAssertion("HexStringToInteger: text is NULL.");
   EXPECT_EQ(0, rlz_lib::HexStringToInteger(NULL));
 
-  rlz_lib::expected_assertion_ = "";
+  rlz_lib::SetExpectedAssertion("");
   EXPECT_EQ(0, rlz_lib::HexStringToInteger(""));
   EXPECT_EQ(0, rlz_lib::HexStringToInteger("   "));
   EXPECT_EQ(0, rlz_lib::HexStringToInteger("  0x  "));
@@ -43,15 +43,15 @@
   EXPECT_EQ(0xa34Ed0, rlz_lib::HexStringToInteger("   0x000a34Ed0   "));
   EXPECT_EQ(0xa34Ed0, rlz_lib::HexStringToInteger("   000a34Ed0   "));
 
-  rlz_lib::expected_assertion_ =
-      "HexStringToInteger: text contains non-hex characters.";
+  rlz_lib::SetExpectedAssertion(
+      "HexStringToInteger: text contains non-hex characters.");
   EXPECT_EQ(0x12ff, rlz_lib::HexStringToInteger("12ffg"));
   EXPECT_EQ(0x12f, rlz_lib::HexStringToInteger("12f 121"));
   EXPECT_EQ(0x12f, rlz_lib::HexStringToInteger("12f 121"));
   EXPECT_EQ(0, rlz_lib::HexStringToInteger("g12f"));
   EXPECT_EQ(0, rlz_lib::HexStringToInteger("  0x0  \n"));
 
-  rlz_lib::expected_assertion_ = "";
+  rlz_lib::SetExpectedAssertion("");
 }
 
 TEST(StringUtilsUnittest, TestBytesToString) {
