diff --git a/core/lib/Drupal/Core/Utility/ModuleInfo.php b/core/lib/Drupal/Core/Utility/ModuleInfo.php
index eca0874..6dee087 100644
--- a/core/lib/Drupal/Core/Utility/ModuleInfo.php
+++ b/core/lib/Drupal/Core/Utility/ModuleInfo.php
@@ -22,11 +22,16 @@ class ModuleInfo extends CacheArray {
   protected $info;
 
   /**
+   * Whether the cache should be persisted.
+   */
+  protected $persistable;
+
+  /**
    * Implements CacheArray::resolveCacheMiss().
    */
   function resolveCacheMiss($offset) {
     $data = array();
-    if (!isset($this->info)) {
+    if (!isset($this->info) || !$this->persistable()) {
       $this->info = system_get_info('module');
     }
     foreach ($this->info as $module => $info) {
@@ -34,8 +39,22 @@ function resolveCacheMiss($offset) {
         $data[$module] = $info[$offset];
       }
     }
-    $this->storage[$offset] = $data;
-    $this->persist($offset);
+    if ($this->persistable()) {
+      $this->storage[$offset] = $data;
+      $this->persist($offset);
+    }
+
     return $data;
   }
+
+  /**
+   * Whether the cache should be persisted.
+   */
+  protected function persistable() {
+    if (is_null($this->persistable)) {
+      $this->persistable = drupal_get_bootstrap_phase() == DRUPAL_BOOTSTRAP_FULL;
+    }
+    return $this->persistable;
+  }
 }
+
