diff --git a/modules/image/image.install b/modules/image/image.install
index ea3eee5ac64d2b4d2fee4a9dafb1eb4a24738936..d9c6b9a05d061ad177a676b99348bfa8a9d1f657 100644
--- a/modules/image/image.install
+++ b/modules/image/image.install
@@ -228,7 +228,19 @@ function image_update_7000() {
 
     db_create_table('cache_image', $schema['cache_image']);
     db_create_table('image_styles', $schema['image_styles']);
-    db_create_table('image_effect', $schema['image_effects']);
+    db_create_table('image_effects', $schema['image_effects']);
+  }
+}
+
+/**
+ * Rename possibly misnamed {image_effect} table to {image_effects}.
+ */
+function image_update_7001() {
+  // Due to a bug in earlier versions of image_update_7000() it is possible
+  // to end up with an {image_effect} table where there should be an
+  // {image_effects} table.
+  if (!db_table_exists('image_effects') && db_table_exists('image_effect')) {
+    db_rename_table('image_effect', 'image_effects');
   }
 }