diff --git a/sites/all/modules/imce/README.txt b/sites/all/modules/imce/README.txt
index acdd5af711c649ba199d2947700ff96781fe237f..1c7f1c0c85c12e4cbe325837c6db9dc5901b246c 100644
--- a/sites/all/modules/imce/README.txt
+++ b/sites/all/modules/imce/README.txt
@@ -1,4 +1,4 @@
-// $Id: README.txt,v 1.18 2010/10/06 04:42:57 ufku Exp $
+// $Id: README.txt,v 1.18.2.1 2010/11/08 04:37:21 ufku Exp $
 
 IMCE
 http://drupal.org/project/imce
@@ -54,7 +54,7 @@ Having nothing to do with IMCE, it appeared many times in issue queues. This is
 - Upload does not work in Opera
 Jquery form plugin before version 2.09 has problems with Opera 9.2+. Replace Drupal's misc/jquery.form.js with the one at http://jquery.malsup.com/form/#download
 
-- IMCE may have problem working with Google Analytics and Secure pages modules. Just make sure to add imce* path to the exceptions list of these modules.
+- IMCE may have problem working with Google Analytics and Secure pages modules. Just make sure to add *imce* path to the exceptions list of these modules.
 
 
 INTEGRATION METHODS
diff --git a/sites/all/modules/imce/css/close.png b/sites/all/modules/imce/css/close.png
index dde4617b16e415236b50e85dd7ef995e2899ac95..ea709d08e8fdf90941f1f98e9973618dc3fdf7b0 100644
Binary files a/sites/all/modules/imce/css/close.png and b/sites/all/modules/imce/css/close.png differ
diff --git a/sites/all/modules/imce/css/collapsed.png b/sites/all/modules/imce/css/collapsed.png
index 53462448a522b9a9bb0eec5bb5b241c928042ce5..aa4a93283a9b73abfd282038ed3dcc04195addc4 100644
Binary files a/sites/all/modules/imce/css/collapsed.png and b/sites/all/modules/imce/css/collapsed.png differ
diff --git a/sites/all/modules/imce/css/delete.png b/sites/all/modules/imce/css/delete.png
index 7751a6896792c8849f98234595b321b43780b59f..277f9f325d1c6356a501ed7b25bf01fe859b6dce 100644
Binary files a/sites/all/modules/imce/css/delete.png and b/sites/all/modules/imce/css/delete.png differ
diff --git a/sites/all/modules/imce/css/error.png b/sites/all/modules/imce/css/error.png
index 513f819ec13029524996535ce11c57eb9c33a1ee..b92fb75e700f1d5bd2becfc54ee5074e2096f06f 100644
Binary files a/sites/all/modules/imce/css/error.png and b/sites/all/modules/imce/css/error.png differ
diff --git a/sites/all/modules/imce/css/expanded.png b/sites/all/modules/imce/css/expanded.png
index 7ed7671d228717d3e4642999e1f79142542d38f0..5179e82cf0141318890f57c17a2a296008e453b9 100644
Binary files a/sites/all/modules/imce/css/expanded.png and b/sites/all/modules/imce/css/expanded.png differ
diff --git a/sites/all/modules/imce/css/folder-open.png b/sites/all/modules/imce/css/folder-open.png
index f42a75234f35095f6eb8ff9ff8d6610bcea5c1b9..ce473f4aa5023e94edef01c6fad31f95cddaf484 100644
Binary files a/sites/all/modules/imce/css/folder-open.png and b/sites/all/modules/imce/css/folder-open.png differ
diff --git a/sites/all/modules/imce/css/folder-root.png b/sites/all/modules/imce/css/folder-root.png
index 1a6c5f7e90a0922520d1c730dae4c94f097e56b1..140d5f20a328ea3eaf09cd6d3728020607e24a6e 100644
Binary files a/sites/all/modules/imce/css/folder-root.png and b/sites/all/modules/imce/css/folder-root.png differ
diff --git a/sites/all/modules/imce/css/folder.png b/sites/all/modules/imce/css/folder.png
index 7586a2de3b1a71beab02c17c7112c34dc517883c..6e059125533ee733ef1aede1f678763b566f7f1c 100644
Binary files a/sites/all/modules/imce/css/folder.png and b/sites/all/modules/imce/css/folder.png differ
diff --git a/sites/all/modules/imce/css/header.png b/sites/all/modules/imce/css/header.png
index ade32cead984ed91065027284576f3650b96c724..4a1e8c6dbf17c26db56d7cf6a80ec5b08e2d628d 100644
Binary files a/sites/all/modules/imce/css/header.png and b/sites/all/modules/imce/css/header.png differ
diff --git a/sites/all/modules/imce/css/help.png b/sites/all/modules/imce/css/help.png
index 4b3252a9416e54d7e20a631e66e7eb7a068d72f4..8f7af95ca2dc05eb32fcbbb11c6aee8d61d7b80b 100644
Binary files a/sites/all/modules/imce/css/help.png and b/sites/all/modules/imce/css/help.png differ
diff --git a/sites/all/modules/imce/css/leaf.png b/sites/all/modules/imce/css/leaf.png
index 022695c8977e4f0f393e2ffd7147b297711638ce..605d3ac811754459a0f16a464244c4024925cebb 100644
Binary files a/sites/all/modules/imce/css/leaf.png and b/sites/all/modules/imce/css/leaf.png differ
diff --git a/sites/all/modules/imce/css/loading.gif b/sites/all/modules/imce/css/loading.gif
index d1578b5499591d0be9be180eb141a69e47bfc824..16baa5bac9a27dc206ffde16cca51081ce80a932 100644
Binary files a/sites/all/modules/imce/css/loading.gif and b/sites/all/modules/imce/css/loading.gif differ
diff --git a/sites/all/modules/imce/css/op.png b/sites/all/modules/imce/css/op.png
index aba39c2e0a4c8b836fe4268e7c8276be8b771ee7..74055e2b73e083bd5abdf305e9743a71ae50ce39 100644
Binary files a/sites/all/modules/imce/css/op.png and b/sites/all/modules/imce/css/op.png differ
diff --git a/sites/all/modules/imce/css/ops.png b/sites/all/modules/imce/css/ops.png
index 70cd625fe28e45b45e517c21bb207488c468011b..25b4c2cd306c8c88c53f715a41641169506ebd1c 100644
Binary files a/sites/all/modules/imce/css/ops.png and b/sites/all/modules/imce/css/ops.png differ
diff --git a/sites/all/modules/imce/css/resize.png b/sites/all/modules/imce/css/resize.png
index 94314890822161104723f3bac239c2c58b872f09..2ee120cb0f6063d90394c36c94c27e5fe076e046 100644
Binary files a/sites/all/modules/imce/css/resize.png and b/sites/all/modules/imce/css/resize.png differ
diff --git a/sites/all/modules/imce/css/sendto.png b/sites/all/modules/imce/css/sendto.png
index 64bc32753630dfb21e7961b695709b4d754e95f5..90309230d3fdef07717510c5b687b9f105706e0a 100644
Binary files a/sites/all/modules/imce/css/sendto.png and b/sites/all/modules/imce/css/sendto.png differ
diff --git a/sites/all/modules/imce/css/status.png b/sites/all/modules/imce/css/status.png
index da78caa9c43cacfbb5f2fde6f422180315c95af5..33594977a6e0fdd6df40f3ff4051f2c4828765d2 100644
Binary files a/sites/all/modules/imce/css/status.png and b/sites/all/modules/imce/css/status.png differ
diff --git a/sites/all/modules/imce/css/submit.png b/sites/all/modules/imce/css/submit.png
index 8dec75430499ef45ce1d02b55db919e95ef8f812..4e045722935ae792a92e4dd18097bf0b34a4b936 100644
Binary files a/sites/all/modules/imce/css/submit.png and b/sites/all/modules/imce/css/submit.png differ
diff --git a/sites/all/modules/imce/css/thumb.png b/sites/all/modules/imce/css/thumb.png
index d62878d8cfe0029a8b0a8b21be85c4e44d92d854..ef2949794e01717117d4338659cbe1d8e8e383d8 100644
Binary files a/sites/all/modules/imce/css/thumb.png and b/sites/all/modules/imce/css/thumb.png differ
diff --git a/sites/all/modules/imce/css/tree.png b/sites/all/modules/imce/css/tree.png
index 28203b2a18b6eaefd1fbe0f2e9a4001d0fb47e51..645d25c31da9e84bf707c5b371bd59d0f7384c70 100644
Binary files a/sites/all/modules/imce/css/tree.png and b/sites/all/modules/imce/css/tree.png differ
diff --git a/sites/all/modules/imce/css/upload.png b/sites/all/modules/imce/css/upload.png
index 74d5aa59777c78ed225f82b390629ce87983e379..6cba6092c8ab16c01bc2ae71754540d2aaf471e9 100644
Binary files a/sites/all/modules/imce/css/upload.png and b/sites/all/modules/imce/css/upload.png differ
diff --git a/sites/all/modules/imce/css/view-box.png b/sites/all/modules/imce/css/view-box.png
new file mode 100644
index 0000000000000000000000000000000000000000..45086f6c6c9c3c9ec139790b6e2d48cc91106903
Binary files /dev/null and b/sites/all/modules/imce/css/view-box.png differ
diff --git a/sites/all/modules/imce/css/view-list.png b/sites/all/modules/imce/css/view-list.png
new file mode 100644
index 0000000000000000000000000000000000000000..c761f64536aaa2afd542cc82f83233f0d3c9642b
Binary files /dev/null and b/sites/all/modules/imce/css/view-list.png differ
diff --git a/sites/all/modules/imce/css/warning.png b/sites/all/modules/imce/css/warning.png
index 50910c9d05a070b26dbecddd7f67ab0705ff491e..6d2756033a1c138f87cacf2bb8422f323c4ec2b1 100644
Binary files a/sites/all/modules/imce/css/warning.png and b/sites/all/modules/imce/css/warning.png differ
diff --git a/sites/all/modules/imce/css/x-resizer.png b/sites/all/modules/imce/css/x-resizer.png
index 54ad5c80de2390ba6bb1bad762307bcfa4fe1cb6..e54941fffd927dcf4b7428787277b9bd2d19b6da 100644
Binary files a/sites/all/modules/imce/css/x-resizer.png and b/sites/all/modules/imce/css/x-resizer.png differ
diff --git a/sites/all/modules/imce/css/y-resizer.png b/sites/all/modules/imce/css/y-resizer.png
index 8e9740dce0398bace2762b3f2c867f535be6a2eb..3a32f6549b0234cb844ea337f268119ec2cc1223 100644
Binary files a/sites/all/modules/imce/css/y-resizer.png and b/sites/all/modules/imce/css/y-resizer.png differ
diff --git a/sites/all/modules/imce/imce.info b/sites/all/modules/imce/imce.info
index c939de2d14f13d38c5fb7bfd0cd618a07221f46f..9b64b1689a116170bfc48f7625bdb9ff63461d1a 100644
--- a/sites/all/modules/imce/imce.info
+++ b/sites/all/modules/imce/imce.info
@@ -1,17 +1,12 @@
-; $Id: imce.info,v 1.7 2010/03/17 21:36:38 ufku Exp $
+; $Id: imce.info,v 1.7.2.1 2010/12/27 20:10:34 ufku Exp $
 name = "IMCE"
 description = "An image/file uploader and browser supporting personal directories and user quota."
 core = "7.x"
 package = "Media"
 
-files[] = "imce.install"
-files[] = "imce.module"
-files[] = "inc/imce.admin.inc"
-files[] = "inc/imce.page.inc"
-
-; Information added by drupal.org packaging script on 2010-10-09
-version = "7.x-1.0-beta1"
+; Information added by drupal.org packaging script on 2010-12-27
+version = "7.x-1.1"
 core = "7.x"
 project = "imce"
-datestamp = "1286606462"
+datestamp = "1293481279"
 
diff --git a/sites/all/modules/imce/inc/imce.admin.inc b/sites/all/modules/imce/inc/imce.admin.inc
index 420ee39616b34fc1384a64c5946f418edb91c42e..3dd437823b573d625afa8012d706a66d4c0df41c 100644
--- a/sites/all/modules/imce/inc/imce.admin.inc
+++ b/sites/all/modules/imce/inc/imce.admin.inc
@@ -1,5 +1,5 @@
 <?php
-// $Id: imce.admin.inc,v 1.7 2010/10/09 05:49:37 ufku Exp $
+// $Id: imce.admin.inc,v 1.7.2.1 2010/12/12 07:14:44 ufku Exp $
 
 /**
  * @file
@@ -114,9 +114,9 @@ function imce_admin_theme($variables) {
   $rows = array(array(t('Site maintenance account')));
   $keys = array('name');
   //add each stream wrapper as a column
-  $swrappers = file_get_stream_wrappers();
+  $swrappers = file_get_stream_wrappers(STREAM_WRAPPERS_VISIBLE);
   foreach ($swrappers as $scheme => $info) {
-    $header[] = $info['name'];
+    $header[] = l($info['name'], 'imce/' . $scheme);
     $rows[0][] = $profile1['name'];
     $keys[] = $scheme . '_pid';
   }
@@ -140,7 +140,7 @@ function imce_admin_theme($variables) {
 
   $output = '<h2 class="title">' . t('Role-profile assignments') . '</h2>';
   $output .= theme('table', array('header' => $header, 'rows' => $rows));
-  $output .= '<div class="form-item"><div class="description">' . t('Assign profiles to user roles for available file systems. Your default file system is %name', array('%name' => $swrappers[variable_get('file_default_scheme', 'public')]['name'])) . ' ' . $weight_info . '</div></div>';
+  $output .= '<div class="form-item"><div class="description">' . t('Assign profiles to user roles for available file systems. Your default file system is %name.', array('%name' => $swrappers[variable_get('file_default_scheme', 'public')]['name'])) . ' ' . $weight_info . '</div></div>';
   $output .= drupal_render($form['common']);
   $output .= drupal_render_children($form);
   return $output;
@@ -475,7 +475,7 @@ function imce_role_form($role, $weight = TRUE, $core = TRUE) {
       '#default_value' => $role['weight'],
     );
   }
-  foreach (array_keys(file_get_stream_wrappers()) as $scheme) {
+  foreach (array_keys(file_get_stream_wrappers(STREAM_WRAPPERS_VISIBLE)) as $scheme) {
     $form[$scheme . '_pid'] = array(
       '#type' => 'select',
       '#options' => imce_profile_options(),
@@ -645,7 +645,7 @@ function imce_sorted_roles() {
     $roles_profiles = variable_get('imce_roles_profiles', array());
     $roles_profiles[DRUPAL_ANONYMOUS_RID]['weight'] = 12;
     $roles_profiles[DRUPAL_AUTHENTICATED_RID]['weight'] = 11;
-    $schemes = array_keys(file_get_stream_wrappers());
+    $schemes = array_keys(file_get_stream_wrappers(STREAM_WRAPPERS_VISIBLE));
     foreach ($roles as $rid => $name) {
       $sorted[$rid] = array(
         'name' => $name,
diff --git a/sites/all/modules/imce/inc/imce.page.inc b/sites/all/modules/imce/inc/imce.page.inc
index d517ab993fd4eb0a4d3e1d42c32944e6e0e61f75..072c0f0e8e7c39a8bdc84fda7b0adc0bebfb5c46 100644
--- a/sites/all/modules/imce/inc/imce.page.inc
+++ b/sites/all/modules/imce/inc/imce.page.inc
@@ -1,5 +1,5 @@
 <?php
-// $Id: imce.page.inc,v 1.10 2010/08/30 04:06:25 ufku Exp $
+// $Id: imce.page.inc,v 1.10.2.3 2010/12/27 20:09:02 ufku Exp $
 
 /**
  * @file
@@ -599,14 +599,14 @@ function imce_remove_file($filename, &$imce) {
 /**
  * Validate uploaded file.
  */
-function imce_validate_all(&$file, $imce) {
+function imce_validate_all($file, $imce) {
 
   //validate image resolution only if filesize validation passes.
   //because user might have uploaded a very big image
   //and scaling it may exploit system memory.
   $errors = imce_validate_filesize($file, $imce['filesize']);
   //image resolution validation
-  if (empty($errors)) {
+  if (empty($errors) && preg_match('/\.(png|gif|jpe?g)$/i', $file->filename)) {
     $errors = array_merge($errors, file_validate_image_resolution($file, $imce['dimensions']));
   }
   //directory quota validation
diff --git a/sites/all/modules/imce/js/imce.js b/sites/all/modules/imce/js/imce.js
index 9331291ea4cedcc5d48bdc42280ebf56f7fd7069..91552233a159b5e75b0c334b0eb535962e674412 100644
--- a/sites/all/modules/imce/js/imce.js
+++ b/sites/all/modules/imce/js/imce.js
@@ -1,4 +1,4 @@
-// $Id: imce.js,v 1.26 2010/10/06 04:42:57 ufku Exp $
+// $Id: imce.js,v 1.26.2.2 2010/12/12 07:15:56 ufku Exp $
 
 (function($) {
 //Global container.
@@ -23,8 +23,6 @@ initiate: function() {
   imce.invoke('load', window);//run functions set by external applications.
 },
 
-/**************** DIRECTORIES ********************/
-
 //process navigation tree
 initiateTree: function() {
   $('#navigation-tree li').each(function(i) {
@@ -108,8 +106,6 @@ dirSubdirs: function(dir, subdirs) {
   }
 },
 
-/**************** FILES ********************/
-
 //process file list
 initiateList: function(cached) {
   var L = imce.hooks.list, dir = imce.conf.dir, token = {'%dir':  dir == '.' ? $(imce.tree['.'].a).text() : imce.decode(dir)}
@@ -225,8 +221,6 @@ fileToggleSelect: function (fid) {
   imce['file'+ (imce.selected[fid] ? 'De' : '') +'Select'](fid);
 },
 
-/**************** OPERATIONS ********************/
-
 //process file operation form and create operation tabs.
 initiateOps: function() {
   imce.setHtmlOps();
@@ -268,7 +262,7 @@ setFileOps: function () {
     var Op = {name: $sbmt.attr('id').substr(5)};
     var func = function() {imce.fopSubmit(Op.name); return false;};
     $sbmt.click(func);
-    Op.title = $(this).children('legend').remove().text();
+    Op.title = $(this).children('legend').remove().text() || $sbmt.val();
     Op.name == 'delete' ? (Op.func = func) : (Op.content = this.childNodes);
     imce.opAdd(Op);
   }).remove();
@@ -374,8 +368,6 @@ opShrink: function(name, effect) {
   imce.vars.op = null;
 },
 
-/**************** AJAX OPERATIONS  ********************/
-
 //navigate to dir
 navigate: function(dir) {
   if (imce.vars.navbusy || (dir == imce.conf.dir && !confirm(Drupal.t('Do you want to refresh the current directory?')))) return;
@@ -431,7 +423,6 @@ navCache: function (dir, newdir) {
   imce.invoke('cache', C, newdir);
 },
 
-/**************** UPLOAD  ********************/
 //validate upload form
 uploadValidate: function (data, form, options) {
   var path = data[0].value;
@@ -453,7 +444,6 @@ uploadSettings: function () {
   return {beforeSubmit: imce.uploadValidate, success: function (response) {imce.processResponse($.parseJSON(response));}, complete: function () {imce.fopLoading('upload', false);}, resetForm: true};
 },
 
-/**************** FILE OPS  ********************/
 //validate default ops(delete, thumb, resize)
 fopValidate: function(fop) {
   if (!imce.validateSelCount(1, imce.conf.filenum)) return false;
@@ -513,15 +503,13 @@ fopLoading: function(fop, state) {
   }
 },
 
-/**************** PREVIEW & SEND TO  ********************/
-
 //preview a file.
 setPreview: function (fid) {
   var row, html = '';
   imce.vars.prvfid = fid;
   if (fid && (row = imce.fids[fid])) {
     var width = row.cells[2].innerHTML * 1;
-    html = imce.vars.previewImages && width ? imce.imgHtml(fid, width, row.cells[3].innerHTML) : imce.decode(fid);
+    html = imce.vars.previewImages && width ? imce.imgHtml(fid, width, row.cells[3].innerHTML) : imce.decodePlain(fid);
     html = '<a href="#" onclick="imce.send(\''+ fid +'\'); return false;" title="'+ (imce.vars.prvtitle||'') +'">'+ html +'</a>';
   }
   imce.el('file-preview').innerHTML = html;
@@ -543,8 +531,6 @@ setSendTo: function (title, func) {
   return imce.opAdd({name: 'sendto', title: title, func: opFunc});
 },
 
-/**************** LOG MESSAGES  ********************/
-
 //move initial page messages into log
 prepareMsgs: function () {
   var msgs;
@@ -575,7 +561,6 @@ setMessage: function (msg, type) {
   return false;
 },
 
-/**************** OTHER HELPER FUNCTIONS  ********************/
 //invoke hooks
 invoke: function (hook) {
   var i, args, func, funcs;
@@ -590,6 +575,7 @@ processResponse: function (response) {
   if (response.data) imce.resData(response.data);
   if (response.messages) imce.resMsgs(response.messages);
 },
+
 //process response data
 resData: function (data) {
   var i, added, removed;
@@ -611,6 +597,7 @@ resData: function (data) {
   imce.conf.dirsize = data.dirsize;
   imce.updateStat();
 },
+
 //set response messages
 resMsgs: function (msgs) {
   for (var type in msgs) for (var i in msgs[type]) {
@@ -620,12 +607,14 @@ resMsgs: function (msgs) {
 
 //return img markup
 imgHtml: function (fid, width, height) {
-  return '<img src="'+ imce.getURL(fid) +'" width="'+ width +'" height="'+ height +'" alt="'+ imce.decode(fid) +'">';
+  return '<img src="'+ imce.getURL(fid) +'" width="'+ width +'" height="'+ height +'" alt="'+ imce.decodePlain(fid) +'">';
 },
+
 //check if the file is an image
 isImage: function (fid) {
   return imce.fids[fid].cells[2].innerHTML * 1;
 },
+
 //find the first non-image in the selection
 getNonImage: function (selected) {
   for (var fid in selected) {
@@ -633,11 +622,13 @@ getNonImage: function (selected) {
   }
   return false;
 },
+
 //validate current selection for images
 validateImage: function () {
   var nonImg = imce.getNonImage(imce.selected);
   return nonImg ? imce.setMessage(Drupal.t('%filename is not an image.', {'%filename': imce.decode(nonImg)}), 'error') : true;
 },
+
 //validate number of selected files
 validateSelCount: function (Min, Max) {
   if (Min && imce.selcount < Min) {
@@ -654,6 +645,7 @@ updateStat: function () {
   imce.el('file-count').innerHTML = imce.findex.length;
   imce.el('dir-size').innerHTML = imce.conf.dirsize;
 },
+
 //serialize selected files. return fids with a colon between them
 serialNames: function () {
   var str = '';
@@ -662,37 +654,44 @@ serialNames: function () {
   }
   return str.substr(1);
 },
+
 //get file url. re-encode & and # for mod rewrite
 getURL: function (fid) {
   var path = (imce.conf.dir == '.' ? '' : imce.conf.dir +'/') + fid;
   return imce.conf.furl + (imce.conf.modfix ? path.replace(/%(23|26)/g, '%25$1') : path);
 },
+
 //el. by id
 el: function (id) {
   return document.getElementById(id);
 },
+
 //find the latest selected fid
 lastFid: function () {
   if (imce.vars.lastfid) return imce.vars.lastfid;
   for (var fid in imce.selected);
   return fid;
 },
+
 //create ajax url
 ajaxURL: function (op, dir) {
   return imce.conf.url + (imce.conf.clean ? '?' :'&') +'jsop='+ op +'&dir='+ (dir||imce.conf.dir);
 },
+
 //fast class check
 hasC: function (el, name) {
   return el.className && (' '+ el.className +' ').indexOf(' '+ name +' ') != -1;
 },
+
 //highlight a single file
 highlight: function (fid) {
   if (imce.vars.prvfid) imce.fileClick(imce.vars.prvfid);
   imce.fileClick(fid);
 },
+
 //process a row
 processRow: function (row) {
-  row.cells[0].innerHTML = '<span>' + imce.decode(row.id) + '</span>';
+  row.cells[0].innerHTML = '<span>' + imce.decodePlain(row.id) + '</span>';
   row.onmousedown = function(e) {
     var e = e||window.event;
     imce.fileClick(this, e.ctrlKey, e.shiftKey);
@@ -703,24 +702,34 @@ processRow: function (row) {
     return false;
   };
 },
+
 //decode urls. uses unescape. can be overridden to use decodeURIComponent
 decode: function (str) {
   return unescape(str);
 },
+
+//decode and convert to plain text
+decodePlain: function (str) {
+  return Drupal.checkPlain(imce.decode(str));
+},
+
 //global ajax error function
 ajaxError: function (e, response, settings, thrown) {
   imce.setMessage(Drupal.ajaxError(response, settings.url).replace(/\n/g, '<br />'), 'error');
 },
+
 //convert button elements to standard input buttons
 convertButtons: function(form) {
   $('button:submit', form).each(function(){
     $(this).replaceWith('<input type="submit" value="'+ $(this).text() +'" name="'+ this.name +'" class="form-submit" id="'+ this.id +'" />');
   });
 },
+
 //create element
 newEl: function(name) {
   return document.createElement(name);
 },
+
 //scroll syncronization for section headers
 syncScroll: function(scrlEl, fixEl, bottom) {
   var $fixEl = $(fixEl);
@@ -737,6 +746,7 @@ syncScroll: function(scrlEl, fixEl, bottom) {
     });
   });
 },
+
 //get UI ready. provide backward compatibility.
 updateUI: function() {
   //file urls.
@@ -789,6 +799,7 @@ updateUI: function() {
   //scrolling directory tree
   imce.syncScroll(imce.NW, '#navigation-header');
 }
+
 };
 
 //initiate
diff --git a/sites/all/modules/imce/js/imce_set_app.js b/sites/all/modules/imce/js/imce_set_app.js
index 7dfea4c3a863b35c7f427fdd5636854f50b6656f..667294c1f48738e8cdb57566c3595a5b93c395f1 100644
--- a/sites/all/modules/imce/js/imce_set_app.js
+++ b/sites/all/modules/imce/js/imce_set_app.js
@@ -1,4 +1,4 @@
-// $Id: imce_set_app.js,v 1.8 2010/08/29 03:46:54 ufku Exp $
+// $Id: imce_set_app.js,v 1.8.2.1 2010/12/12 07:14:44 ufku Exp $
 /*
  * IMCE Integration by URL
  * Ex-1: http://example.com/imce?app=XEditor|url@urlFieldId|width@widthFieldId|height@heightFieldId
@@ -6,7 +6,7 @@
  * of the selected file in the parent window
  * Ex-2: http://example.com/imce?app=XEditor|sendto@functionName
  * "Insert file" operation calls parent window's functionName(file, imceWindow)
- * Ex-3: http://example.com/imce?app=nomatter|imceload@functionName
+ * Ex-3: http://example.com/imce?app=XEditor|imceload@functionName
  * Parent window's functionName(imceWindow) is called as soon as IMCE UI is ready. Send to operation
  * needs to be set manually. See imce.setSendTo() method in imce.js
  */
@@ -15,61 +15,70 @@
 
 var appFields = {}, appWindow = (top.appiFrm||window).opener || parent;
 
-//execute when imce loads.
+// Execute when imce loads.
 imce.hooks.load.push(function(win) {
-  var data = decodeURIComponent(location.href.substr(location.href.lastIndexOf('app=')+4)).split('|');
-  var func, appName = data.shift();
-  //extract fields
-  for (var i in data) {
-    var arr = data[i].split('@');
-    arr.length > 1 && (appFields[arr[0]] = arr[1]);
+  var index = location.href.lastIndexOf('app=');
+  if (index == -1) return;
+  var data = decodeURIComponent(location.href.substr(index + 4)).split('|');
+  var arr, prop, str, func, appName = data.shift();
+  // Extract fields
+  for (var i = 0, len = data.length; i < len; i++) {
+    str = data[i];
+    if (!str.length) continue;
+    if (str.indexOf('&') != -1) str = str.split('&')[0];
+    arr = str.split('@');
+    if (arr.length > 1) {
+      prop = arr.shift();
+      appFields[prop] = arr.join('@');
+    }
   }
-  //run custom onload function if available
-  if (appFields['imceload'] && (func = isFunc(appFields['imceload']))) {
+  // Run custom onload function if available
+  if (appFields.imceload && (func = isFunc(appFields.imceload))) {
     func(win);
-    delete appFields['imceload'];
+    delete appFields.imceload;
   }
-  //set custom sendto function. appFinish is the default.
-  var sendtoFunc = appFields['url'] ? appFinish : false;
+  // Set custom sendto function. appFinish is the default.
+  var sendtoFunc = appFields.url ? appFinish : false;
   //check sendto@funcName syntax in URL
-  if (appFields['sendto'] && (func = isFunc(appFields['sendto']))) {
+  if (appFields.sendto && (func = isFunc(appFields.sendto))) {
     sendtoFunc = func;
-    delete appFields['sendto'];
+    delete appFields.sendto;
   }
-  //check windowname+ImceFinish. old method
+  // Check old method windowname+ImceFinish.
   else if (win.name && (func = isFunc(win.name +'ImceFinish'))) {
     sendtoFunc = func;
   }
-  //highlight file
-  if (appFields['url']) {
-    if (appFields['url'].indexOf(',') > -1) {//support multiple url fields url@field1,field2..
-      var arr = appFields['url'].split(',');
+  // Highlight file
+  if (appFields.url) {
+    // Support multiple url fields url@field1,field2..
+    if (appFields.url.indexOf(',') > -1) {
+      var arr = appFields.url.split(',');
       for (var i in arr) {
         if ($('#'+ arr[i], appWindow.document).size()) {
-          appFields['url'] = arr[i];
+          appFields.url = arr[i];
           break;
         }
       }
     }
-    var filename = $('#'+ appFields['url'], appWindow.document).val();
+    var filename = $('#'+ appFields.url, appWindow.document).val() || '';
     imce.highlight(filename.substr(filename.lastIndexOf('/')+1));
   }
-  //set send to
+  // Set send to
   sendtoFunc && imce.setSendTo(Drupal.t('Insert file'), sendtoFunc);
 });
 
-//sendTo function
+// Default sendTo function
 var appFinish = function(file, win) {
   var $doc = $(appWindow.document);
   for (var i in appFields) {
     $doc.find('#'+ appFields[i]).val(file[i]);
   }
-  if (appFields['url']) {
+  if (appFields.url) {
     try{
-      $doc.find('#'+ appFields['url']).blur().change().focus();
+      $doc.find('#'+ appFields.url).blur().change().focus();
     }catch(e){
       try{
-        $doc.find('#'+ appFields['url']).trigger('onblur').trigger('onchange').trigger('onfocus');//inline events for IE
+        $doc.find('#'+ appFields.url).trigger('onblur').trigger('onchange').trigger('onfocus');//inline events for IE
       }catch(e){}
     }
   }
@@ -77,7 +86,8 @@ var appFinish = function(file, win) {
   win.close();
 };
 
-//checks if a string is a function name in the given scope. returns function reference. supports x.y.z notation.
+// Checks if a string is a function name in the given scope.
+// Returns function reference. Supports x.y.z notation.
 var isFunc = function(str, scope) {
   var obj = scope || appWindow;
   var parts = str.split('.'), len = parts.length;