diff --git a/entitycache.install b/entitycache.install
index 159102b..c79b74e 100644
--- a/entitycache.install
+++ b/entitycache.install
@@ -16,6 +16,9 @@ function entitycache_schema() {
   $cache_schema = drupal_get_schema_unprocessed('system', 'cache');
 
   foreach ($entities as $type) {
+    if (db_table_exists("cache_entity_$type")){
+      db_drop_table("cache_entity_$type");
+    }
     $schema["cache_entity_$type"] = $cache_schema;
     $schema["cache_entity_$type"]['description'] = "Cache table used to store $type entity records.";
   }
@@ -34,6 +37,7 @@ function entitycache_enable() {
  */
 function entitycache_disable() {
   variable_del('entitycache_enabled');
+  registry_update();
 }
 
 /**
@@ -41,6 +45,7 @@ function entitycache_disable() {
  */
 function entitycache_uninstall() {
   variable_del('entitycache_disabled_entity_types');
+  registry_update();
 }
 
 /**
