diff --git includes/module.inc includes/module.inc
index 4392ab3..b0519f8 100644
--- includes/module.inc
+++ includes/module.inc
@@ -369,6 +369,8 @@ function module_enable($module_list, $enable_dependencies = TRUE) {
       registry_update();
       // Refresh the schema to include it.
       drupal_get_schema(NULL, TRUE);
+      // Clear entity cache.
+      entity_info_cache_clear();
 
       // Now install the module if necessary.
       if (drupal_get_installed_schema_version($module, TRUE) == SCHEMA_UNINSTALLED) {
diff --git modules/simpletest/tests/entity_cache_test.info modules/simpletest/tests/entity_cache_test.info
new file mode 100644
index 0000000..567bf74
--- /dev/null
+++ modules/simpletest/tests/entity_cache_test.info
@@ -0,0 +1,9 @@
+; $Id$
+name = "Entity cache test"
+description = "Support module for testing entity cache."
+package = Testing
+version = VERSION
+core = 7.x
+files[] = entity_cache_test.module
+dependencies[] = entity_cache_test_dependency
+hidden = TRUE
diff --git modules/simpletest/tests/entity_cache_test.module modules/simpletest/tests/entity_cache_test.module
new file mode 100644
index 0000000..ce9d7eb
--- /dev/null
+++ modules/simpletest/tests/entity_cache_test.module
@@ -0,0 +1,22 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Helper module for entity cache tests.
+ */
+
+/**
+ * Implements hook_watchdog().
+ *
+ * This function is called during module_enable() and tries to access entity
+ * information provided by the module this one depends on. The information is
+ * stored in a temporary system variable and is later analyzed in the test
+ * case.
+ *
+ * @see EnableDisableTestCase::testEntityCache()
+ */
+function entity_cache_test_watchdog() {
+  $info = entity_get_info('entity_cache_test');
+  variable_set('entity_cache_test', $info);
+}
diff --git modules/simpletest/tests/entity_cache_test_dependency.info modules/simpletest/tests/entity_cache_test_dependency.info
new file mode 100644
index 0000000..dac380f
--- /dev/null
+++ modules/simpletest/tests/entity_cache_test_dependency.info
@@ -0,0 +1,8 @@
+; $Id$
+name = "Entity cache test dependency"
+description = "Support dependency module for testing entity cache."
+package = Testing
+version = VERSION
+core = 7.x
+files[] = entity_cache_test_dependency.module
+hidden = TRUE
diff --git modules/simpletest/tests/entity_cache_test_dependency.module modules/simpletest/tests/entity_cache_test_dependency.module
new file mode 100644
index 0000000..19d51cc
--- /dev/null
+++ modules/simpletest/tests/entity_cache_test_dependency.module
@@ -0,0 +1,19 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Helper module for entity cache tests.
+ */
+
+/**
+ * Implements hook_entity_info().
+ */
+function entity_cache_test_dependency_entity_info() {
+  return array(
+    'entity_cache_test' => array(
+      'label' => 'Entity Cache Test',
+      'base table' => 'entity_cache_test',
+    ),
+  );
+}
diff --git modules/system/system.test modules/system/system.test
index 43f2efd..788d6c8 100644
--- modules/system/system.test
+++ modules/system/system.test
@@ -157,6 +157,16 @@ class EnableDisableTestCase extends ModuleTestCase {
     $this->drupalPost('admin/modules', $edit, t('Save configuration'));
     $this->assertText(t('The configuration options have been saved.'), t('Modules status has been updated.'));
   }
+
+  /**
+   * Tests entity cache after enabling a module with a dependency on an enitity
+   * providing module.
+   */
+  function testEntityCache() {
+    module_enable(array('entity_cache_test'));
+    $info = variable_get('entity_cache_test');
+    $this->assertNotNull($info, t('Entity information must not be NULL'));
+  }
 }
 
 /**
