diff --git a/js/jquery.multifile.js b/js/jquery.multifile.js
index 9b9a23b7d47065e1ecdea827f4b4d2cc05574dc6..c402021a637f84b159167c578dd3e935688fca58 100644
--- a/js/jquery.multifile.js
+++ b/js/jquery.multifile.js
@@ -50,7 +50,23 @@
 
                 if(fObj.data('files')>=settings.max_uploads || (fObj.data('files')+file.count)>settings.max_uploads) {
                     alert('You have reached the maximum number of files ('+ settings.max_uploads+') allowed per upload');
-                } else if($.fn.multifile.checkFileTypes(file, settings.allowedFileTypes)) {
+                } else if(!$.fn.multifile.checkFileTypes(file, settings.allowedFileTypes)) {
+                    var msg = 'Selected file type is NOT allowed';
+                    if(file.count>1)
+                        msg = 'File type of one or more of the selected files is NOT allowed';
+
+                    alert('Error: '+msg);
+                    
+                    $this.replaceWith(new_input);
+                } else if(!$.fn.multifile.checkFileSize(file, settings.max_file_size)) {
+                    var msg = 'Selected file size is NOT allowed';
+                    if(file.count>1)
+                        msg = 'File size of one or more of the selected files is NOT allowed';
+
+                    alert('Error: '+msg);
+                    
+                    $this.replaceWith(new_input);
+                } else {
                     $this.hide();
                     
                     settings
@@ -61,15 +77,6 @@
                     fObj.data('files', fObj.data('files')+file.count);
                     if(fObj.data('files')<settings.max_uploads)
                         $this.after(new_input);
-
-                } else {
-                    var msg = 'Selected file type is NOT allowed';
-                    if(file.count>1)
-                        msg = 'File type of one or more of the selected files is NOT allowed';
-
-                    alert('Error: '+msg);
-                    
-                    $this.replaceWith(new_input);
                 }
         
             }
@@ -126,6 +133,16 @@
           if(filenames[i] && $.inArray('.'+filenames[i].split('.').pop(), allowedFileTypes) == -1)
               return false;
 
+      return true;
+  };  
+  
+  $.fn.multifile.checkFileSize = function(file, MaxFileSize) {
+     
+      var filesizes = $.map(file.size.split(','), $.trim);
+      for (var i = 0, _len = filesizes.length; i < _len; i++)
+          if(filesizes[i] > MaxFileSize)
+              return false;
+
       return true;
   };
 
@@ -150,16 +167,19 @@
     file.count = 1; 
     // check for HTML5 FileList support
     if ( !!global.FileList ) {
-      if ( input.files.length == 1 )
+      if ( input.files.length == 1 ) {
         file.name = input.files[0].name;
-      else { //Multi-select
+        file.size = '' + input.files[0].size;
+      } else { //Multi-select
         // We do this in order to support `multiple` files.
         // You can't display them separately because they 
         // belong to only one file input.  It is impossible
         // to remove just one of the files.
         file.name = input.files[0].name;
-        for (var i = 1, _len = input.files.length; i < _len; i++)
+        for (var i = 1, _len = input.files.length; i < _len; i++) {
           file.name += ', ' + input.files[i].name;
+          file.size += ', ' + input.files[i].size;
+        }
 
         file.count = i;
       }
@@ -173,6 +193,7 @@
   //Default options 
   $.fn.multifile.defaults = { 
                               max_uploads: 1,
-                              file_types: '.*'
+                              file_types: '.*',
+                              max_file_size: 2048
                             };
 })(jQuery, this);
diff --git a/js/osticket.js b/js/osticket.js
index ceca388f0d15339967933876f29f43688d5854cf..1d0235e7990f18f222fc3a64704e33a25a9df86d 100644
--- a/js/osticket.js
+++ b/js/osticket.js
@@ -64,6 +64,7 @@ $(document).ready(function(){
      $('.multifile').multifile({
         container:   '.uploads',
         max_uploads: ($config && $config.max_file_uploads)?$config.max_file_uploads:1,
-        file_types:  ($config && $config.file_types)?$config.file_types:".*"
+        file_types:  ($config && $config.file_types)?$config.file_types:".*",
+        max_file_size: ($config && $config.max_file_size)?$config.max_file_size:2048
        });
 });
diff --git a/scp/js/scp.js b/scp/js/scp.js
index cf32e42d8b638ff1b465cb23eb9a196e72be31ba..2f70d6391fb2915d23aabc986f4c6c4674f1c269 100644
--- a/scp/js/scp.js
+++ b/scp/js/scp.js
@@ -259,7 +259,8 @@ $(document).ready(function(){
      $('.multifile').multifile({
         container:   '.uploads',
         max_uploads: ($config && $config.max_file_uploads)?$config.max_file_uploads:1,
-        file_types:  ($config && $config.file_types)?$config.file_types:".*"
+        file_types:  ($config && $config.file_types)?$config.file_types:".*",
+        max_file_size: ($config && $config.max_file_size)?$config.max_file_size:2048
         });
 
     /* Datepicker */