diff --git a/file_entity.module b/file_entity.module
index 63f7e86..ebc0c5c 100755
--- a/file_entity.module
+++ b/file_entity.module
@@ -457,7 +457,15 @@ function file_entity_form_system_file_system_settings_alter(&$form, &$form_state
     '#default_value' => variable_get('file_entity_title', '[file:field_file_image_title_text]'),
     '#weight' => -8,
   );
-
+  $form['file_entity_max_filesize'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Maximum upload size'),
+    '#default_value' => variable_get('file_entity_max_filesize', ''),
+    '#description' => t('Enter a value like "512" (bytes), "80 KB" (kilobytes) or "50 MB" (megabytes) in order to restrict the allowed file size. If left empty the file sizes will be limited only by PHP\'s maximum post and file upload sizes (current max limit <strong>%limit</strong>).', array('%limit' => format_size(file_upload_max_size()))),
+    '#size' => 10,
+    '#element_validate' => array('_file_generic_settings_max_filesize'),
+    '#weight' => 5,
+  );
   // Provide default token values.
   if (module_exists('token')) {
     $form['token_help'] = array(
diff --git a/file_entity.pages.inc b/file_entity.pages.inc
index f157cd9..d26b999 100755
--- a/file_entity.pages.inc
+++ b/file_entity.pages.inc
@@ -950,9 +950,13 @@ function file_entity_get_upload_validators(array $options = array()) {
 
   // Validate file size but do not allow anything higher than file_upload_max_size().
   $max_filesize = file_upload_max_size();
+  $file_entity_max_filesize = variable_get('file_entity_max_filesize', '');
   if (!empty($options['max_filesize']) && $options['max_filesize'] < $max_filesize) {
     $validators['file_validate_size'] = array(parse_size($options['max_filesize']));
   }
+  elseif (!empty($file_entity_max_filesize) && $file_entity_max_filesize < $max_filesize) {
+    $validators['file_validate_size'] = array(parse_size($file_entity_max_filesize));
+  }
   else {
     $validators['file_validate_size'] = array($max_filesize);
   }
