diff --git a/core/phpunit.xml.dist b/core/phpunit.xml.dist
index 743bf08..8b9e491 100644
--- a/core/phpunit.xml.dist
+++ b/core/phpunit.xml.dist
@@ -34,7 +34,9 @@
     </testsuite>
   </testsuites>
   <listeners>
-    <listener class="\Drupal\Tests\Standards\DrupalStandardsListener">
+    <listener class="\Drupal\Tests\Listeners\DrupalStandardsListener">
+    </listener>
+    <listener class="\Drupal\Tests\Listeners\SafeMarkupSideEffects">
     </listener>
   </listeners>
   <!-- Filter for coverage reports. -->
diff --git a/core/tests/Drupal/Tests/Standards/DrupalStandardsListener.php b/core/tests/Drupal/Tests/Listeners/DrupalStandardsListener.php
similarity index 98%
rename from core/tests/Drupal/Tests/Standards/DrupalStandardsListener.php
rename to core/tests/Drupal/Tests/Listeners/DrupalStandardsListener.php
index 59b2016..4bcc2e1 100644
--- a/core/tests/Drupal/Tests/Standards/DrupalStandardsListener.php
+++ b/core/tests/Drupal/Tests/Listeners/DrupalStandardsListener.php
@@ -2,13 +2,13 @@
 
 /**
  * @file
- * Contains \Drupal\Tests\Standards\DrupalStandardsListener.
+ * Contains \Drupal\Tests\Listeners\DrupalStandardsListener.
  *
  * Listener for PHPUnit tests, to enforce various coding standards within test
  * runs.
  */
 
-namespace Drupal\Tests\Standards;
+namespace Drupal\Tests\Listeners;
 
 /**
  * Listens for PHPUnit tests and fails those with invalid coverage annotations.
diff --git a/core/tests/Drupal/Tests/Listeners/SafeMarkupSideEffects.php b/core/tests/Drupal/Tests/Listeners/SafeMarkupSideEffects.php
new file mode 100644
index 0000000..54939cb
--- /dev/null
+++ b/core/tests/Drupal/Tests/Listeners/SafeMarkupSideEffects.php
@@ -0,0 +1,35 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\Tests\Listeners\SafeMarkupSideEffects.
+ *
+ * Listener for PHPUnit tests, to enforce that data providers don't add to the
+ * SafeMarkup static safe string list.
+ */
+
+namespace Drupal\Tests\Listeners;
+
+use Drupal\Component\Utility\SafeMarkup;
+
+/**
+ * Listens for PHPUnit tests and fails those with SafeMarkup side effects.
+ */
+class SafeMarkupSideEffects extends \PHPUnit_Framework_BaseTestListener {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function startTestSuite(\PHPUnit_Framework_TestSuite $suite) {
+    // Use a static so we only do this test once after all the data providers
+    // have run.
+    static $tested = FALSE;
+    if ($suite->getName() !== '' && !$tested) {
+      $tested = TRUE;
+      if (!empty(SafeMarkup::getAll())) {
+        throw new \RuntimeException('SafeMarkup string list polluted by data providers');
+      }
+    }
+  }
+
+}
