diff --git a/include/class.dynamic_forms.php b/include/class.dynamic_forms.php
index 452e22bf41653150a29354eec7b54f983f9cecd4..4091e7bb016c5d0efc15b23630d0265440e08f2c 100644
--- a/include/class.dynamic_forms.php
+++ b/include/class.dynamic_forms.php
@@ -1129,7 +1129,7 @@ class TypeaheadSelectionWidget extends ChoicesWidget {
             $value = key($this->value);
         }
 
-        $config = $this->getConfiguration();
+        $config = $this->field->getConfiguration();
         $source = array();
         foreach ($this->field->getList()->getItems() as $i)
             $source[] = array(
diff --git a/include/class.forms.php b/include/class.forms.php
index 27c6eee2a183a355ba6e1e5dc13453c7fe77b2aa..3b1cc51b0502f3f0b8ca2a5b766f3ccd1426c575 100644
--- a/include/class.forms.php
+++ b/include/class.forms.php
@@ -1903,7 +1903,8 @@ class FileUploadWidget extends Widget {
             <div class="dropzone"><i class="icon-upload"></i>
             Drop files here or <a href="#" class="manual">choose
             them</a>
-        <input type="file" class="multifile" multiple id="file-<?php echo $id; ?>" style="display:none;"
+        <input type="file" multiple="multiple"
+            id="file-<?php echo $id; ?>" style="display:none;"
             accept="<?php echo implode(',', $config['__mimetypes']); ?>"/>
         </div></div>
         <script type="text/javascript">
diff --git a/js/jquery.multifile.js b/js/jquery.multifile.js
deleted file mode 100644
index a1ae5a02fd9eb4e7f54c53c60951933ecf7fb801..0000000000000000000000000000000000000000
--- a/js/jquery.multifile.js
+++ /dev/null
@@ -1,204 +0,0 @@
-/*********************************************************************
-    jquery.multifile.js
-
-    Multifile plugin that allows users to upload multiple files at once in unobstructive manner - cleaner interface.
-
-    Allows limiting number of files
-    Whitelist file type(s) using file extension
-    Limit file sizes.
-
-    NOTE:
-    * Files are not uploaded until the form is submitted
-    * Server side file type validation is a MUST
-    * Plugin doesn't take into account PHP related limitations e.g max uploads + max size.
-
-    Peter Rotich <peter@osticket.com>
-    Copyright (c) 2006-2013 osTicket
-    http://www.osticket.com
-
-    Credits:
-    The plugin borrows heavily from a plugin by Rocky Meza @ fusionbox
-    https://github.com/fusionbox/jquery-multifile
-
-    vim: expandtab sw=4 ts=4 sts=4:
-**********************************************************************/
-
-;(function($, global, undefined) {
-        
-    $.fn.multifile = function(options) {
-        var container = null;
-        var options = $.extend({}, $.fn.multifile.defaults, options);
-
-        options.allowedFileTypes = $.map(options.file_types.toLowerCase().split(','), $.trim);
-        options.inputTemplate = options.inputTemplate || $.fn.multifile.inputTemplate;
-
-        container = options.container || null;
-
-
-        return this.each(function() {
-
-            var settings = options;
-            var $container
-                
-            , addInput = function(event) {
-            
-                var $this = $(this)
-                , fObj = $(this).closest('form')
-                , new_input = $.fn.multifile.cloneInput($this)
-                , file = $.fn.multifile.getFileObject(this);
-
-                if(fObj.data('files') == undefined)
-                    fObj.data('files', 0);
-
-                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)) {
-                    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 exceeds allowed size';
-                    if(file.count>1)
-                        msg = 'File size of one or more of the selected files exceeds allowed size';
-
-                    alert('Error: '+msg);
-                    $this.replaceWith(new_input);
-                } else {
-                    $this.hide();
-                    
-                    settings
-                    .inputTemplate(file)
-                    .appendTo($container)
-                    .on('click', 'input',  bindRemoveInput($this, file));
-
-                    fObj.data('files', fObj.data('files')+file.count);
-                    if(fObj.data('files')<settings.max_uploads)
-                        $this.after(new_input);
-                }
-        
-            }
-      
-            , bindRemoveInput = function($input, file) {
-
-                return function(event) {
-
-                    event.preventDefault();
-           
-                    if(confirm('Are you sure you want to remove '+file.name+'?')) {
-                        var fObj = $(this).closest('form');
-
-                        fObj.data('files', fObj.data('files')-file.count);
-                        if(fObj.data('files')<settings.max_uploads && (fObj.data('files')+file.count)>=settings.max_uploads)
-                            $input.after($.fn.multifile.cloneInput($input).show());
-                        
-                        $input.remove();
-                        $(this).parent().remove();
-                    }
-
-                    return false;
-                };
-        
-            };
-    
-            if ( container ) {
-                if ( typeof container == 'string' ) 
-                    $container = $(container, $(this).closest('form'));
-                else
-                    $container = container;
-            } else {
-                $container = $('<div class="uploads" />');
-                $(this).after($container);
-            }
-
-            $(this).bind('change.multifile', addInput);
-
-        });
-  };
-
-  $.fn.multifile.inputTemplate = function(file) {
-    return $('<label style="padding-right:5px;"><input type="checkbox" name="uploads[]" value="' + file.name + '" checked="checked"> ' + file.name + '</label><br/>');
-  };
-
-  $.fn.multifile.checkFileTypes = function(file, allowedFileTypes) {
-
-      //Wildcard.
-      if(allowedFileTypes[0]=='.*')
-          return true;
-
-      var filenames = $.map(file.name.toLowerCase().split(','), $.trim);
-      for (var i = 0, _len = filenames.length; i < _len; i++)
-          if(filenames[i] && $.inArray('.'+filenames[i].split('.').pop(), allowedFileTypes) == -1)
-              return false;
-
-      return true;
-  };  
-  
-  $.fn.multifile.checkFileSize = function(file, MaxFileSize) {
-
-      //Size info not available or max file is not set (let server-side handle it).
-      if(!MaxFileSize || !file.size)
-          return true;
-     
-      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;
-  };
-
-  //Clone file input and clear the value without triggering a warning!
-  $.fn.multifile.cloneInput = function(input) {
-
-      var $clone = input.clone(true);
-                      
-      if ($.browser.msie) {
-          $clone.replaceWith(function () { return $(this).clone(true); });
-      } else {
-          $clone.val('');
-      }
-
-      return $clone;
-  }
-
-  //Get file object 
-  $.fn.multifile.getFileObject = function(input) {
-    var file = {};
-
-    file.count = 1; 
-    // check for HTML5 FileList support
-    if ( !!global.FileList ) {
-      if ( input.files.length == 1 ) {
-        file.name = input.files[0].name;
-        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;
-        file.size = '' + input.files[0].size;
-        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;
-      }
-    } else {
-      file.name = input.value;
-    }
-
-    return file;
-  };
-
-  //Default options 
-  $.fn.multifile.defaults = { 
-                              max_uploads: 1,
-                              file_types: '.*',
-                              max_file_size: 0
-                            };
-})(jQuery, this);