diff --git a/includes/media.fields.inc b/includes/media.fields.inc
index 1f7f7cf..e93fdcc 100644
--- a/includes/media.fields.inc
+++ b/includes/media.fields.inc
@@ -250,6 +250,8 @@ function media_field_widget_form(&$form, &$form_state, $field, $instance, $langc
     '#media_options' => array(
       'global' => array(
         'types' => array_filter($instance['widget']['settings']['allowed_types']),
+        // field instance settings (extension, min/max size, ...)
+        'instance_settings' => $instance['settings'],
         // @todo: Not implemented
         'schemes' => $instance['widget']['settings']['allowed_schemes'],
       ),
diff --git a/includes/media.pages.inc b/includes/media.pages.inc
index ff101ff..1ac4843 100644
--- a/includes/media.pages.inc
+++ b/includes/media.pages.inc
@@ -169,6 +169,8 @@ function media_multiple_delete_confirm_submit($form, &$form_state) {
  * @todo: should use the AJAX uploader
  */
 function media_add_upload($form, &$form_state, $types = NULL) {
+  $params = media_get_browser_params();
+  $field_settings = $params['instance_settings'];
 
   $validators = array(
    'file_validate_extensions' => array(media_variable_get('file_extensions')),
@@ -193,6 +195,21 @@ function media_add_upload($form, &$form_state, $types = NULL) {
     unset($validators['file_validate_size']);
   }
 
+  // apply field settings
+  if (isset($field_settings['max_resolution'])) {
+    if (strlen($field_settings['max_resolution']) > 0 || strlen($field_settings['min_resolution']) > 0) {
+      $validators['file_validate_image_resolution'] = array($field_settings['max_resolution'], $field_settings['min_resolution']);
+    }
+  }
+
+  if (isset($field_settings['file_extensions']) && strlen($field_settings['file_extensions']) > 0) {
+    $validators['file_validate_extensions'] = array($field_settings['file_extensions']);
+  }
+
+  if (isset($field_settings['max_filesize']) && strlen($field_settings['max_filesize']) > 0) {
+    $validators['file_validate_size'] = array($field_settings['max_filesize']);
+  }
+
   $form['#validators'] = $validators;
 
   $form['upload'] = array(
