diff --git a/tools/valgrind-webrtc/tsan_v2/suppressions.txt b/tools/valgrind-webrtc/tsan_v2/suppressions.txt
index 4d428be34..c6ed649b2 100644
--- a/tools/valgrind-webrtc/tsan_v2/suppressions.txt
+++ b/tools/valgrind-webrtc/tsan_v2/suppressions.txt
@@ -1,6 +1,3 @@
 # False positive in system wrappers.
 # See https://code.google.com/p/webrtc/issues/detail?id=300 for details.
 race:webrtc/system_wrappers/source/thread_posix.cc
-
-# https://code.google.com/p/webrtc/issues/detail?id=2259
-race:condition_variable_unittest
diff --git a/webrtc/system_wrappers/source/condition_variable_unittest.cc b/webrtc/system_wrappers/source/condition_variable_unittest.cc
index 0d287b71b..48057fc08 100644
--- a/webrtc/system_wrappers/source/condition_variable_unittest.cc
+++ b/webrtc/system_wrappers/source/condition_variable_unittest.cc
@@ -175,6 +175,10 @@ class CondVarTest : public ::testing::Test {
   ThreadWrapper* thread_;
 };
 
+// Disable for TSan v2, see
+// https://code.google.com/p/webrtc/issues/detail?id=2259 for details.
+#if !defined(THREAD_SANITIZER)
+
 // The SetUp and TearDown functions use condition variables.
 // This test verifies those pieces in isolation.
 TEST_F(CondVarTest, InitFunctionsWork) {
@@ -191,6 +195,8 @@ TEST_F(CondVarTest, PassBatonMultipleTimes) {
   EXPECT_EQ(2 * kNumberOfRounds, baton_.PassCount());
 }
 
+#endif // if !defined(THREAD_SANITIZER)
+
 }  // anonymous namespace
 
 }  // namespace webrtc