diff --git a/modules/image/image.module b/modules/image/image.module
index 066bd34..f6362d0 100644
--- a/modules/image/image.module
+++ b/modules/image/image.module
@@ -338,6 +338,47 @@ function image_file_delete($file) {
 }
 
 /**
+ * Implements hook_file_update().
+ */
+function image_file_update($file) {
+  // Update the image width and height in all the fields to which this image is assigned
+  $info = image_get_info($file->uri);
+  if (is_array($info)) {
+    $result = db_select('file_usage', 'f')
+      ->fields('f', array('type', 'id', 'count'))
+      ->condition('fid', $file->fid)
+      ->condition('module', 'file')
+      ->condition('count', 0, '>')
+      ->execute();
+    if ($result->rowCount() > 0) {
+      $fields = field_read_fields(array(
+          'module' => 'image',
+          'storage_type' => 'field_sql_storage',
+          'deleted' => 0,
+          ));
+      $field_list = array();
+      foreach ($fields as $field) {
+        $field_list[_field_sql_storage_tablename($field)] = $field['field_name'];
+        $field_list[_field_sql_storage_revision_tablename($field)] = $field['field_name'];
+      }
+      foreach ($result as $file_usage) {
+        foreach ($field_list as $table => $field_name) {
+          db_update($table)
+            ->fields(array(
+              $field_name . '_width' => $info['width'],
+              $field_name . '_height' => $info['height'],
+            ))
+            ->condition('entity_type', $file_usage->type)
+            ->condition('entity_id', $file_usage->id)
+            ->condition($field_name . '_fid', $file->fid)
+            ->execute();
+        }
+      }
+    }
+  }
+}
+
+/**
  * Implements hook_image_default_styles().
  */
 function image_image_default_styles() {
