diff --git a/core/modules/image/image.field.inc b/core/modules/image/image.field.inc
index ab5f8d5..1aae588 100644
--- a/core/modules/image/image.field.inc
+++ b/core/modules/image/image.field.inc
@@ -236,6 +236,22 @@ function image_field_prepare_view($entity_type, $entities, $field, $instances, $
 }
 
 /**
+ * Implements hook_field_validate().
+ */
+function image_field_validate($entity_type, $entity, $field, $instance, $langcode, $items, &$errors) {
+  // Determine the dimensions if necessary.
+  foreach ($items as &$item) {
+    if (!isset($item['width']) || !isset($item['height'])) {
+      $info = image_get_info(file_load($item['fid'])->uri);
+
+      if (!is_array($info) || !is_numeric($info['width']) || !is_numeric($info['height'])) {
+        $errors[] = t('Foo bar image');
+      }
+    }
+  }
+}
+
+/**
  * Implements hook_field_presave().
  */
 function image_field_presave($entity_type, $entity, $field, $instance, $langcode, &$items) {
