diff --git a/core/js/multiselect.js b/core/js/multiselect.js
index 96fc09a0759d57edf63ba32d9fd1fa2a3a22e3da..541dddf0f708eb36d44562cdecac0f47dce0cc78 100644
--- a/core/js/multiselect.js
+++ b/core/js/multiselect.js
@@ -12,6 +12,11 @@
 			'minWidth': 'default;',
 		};
 		$.extend(settings,options);
+		$.each(this.children(),function(i,option){
+			if($(option).attr('selected') && settings.checked.indexOf($(option).val())==-1){
+				settings.checked.push($(option).val());
+			}
+		});
 		var button=$('<div class="multiselect button"><span>'+settings.title+'</span><span>▾</span></div>');
 		var span=$('<span/>');
 		span.append(button);
@@ -46,9 +51,11 @@
 			});
 			button.addClass('active');
 			event.stopPropagation();
-			var options=$(this).parent().next().children().map(function(){return $(this).val();});
+			var options=$(this).parent().next().children();
 			var list=$('<ul class="multiselectoptions"/>').hide().appendTo($(this).parent());
-			function createItem(item,checked){
+			function createItem(element,checked){
+				element=$(element);
+				var item=element.val();
 				var id='ms'+multiSelectId+'-option-'+item;
 				var input=$('<input id="'+id+'" type="checkbox"/>');
 				var label=$('<label for="'+id+'">'+item+'</label>');
@@ -61,6 +68,7 @@
 				input.change(function(){
 					var groupname=$(this).next().text();
 					if($(this).is(':checked')){
+						element.attr('selected','selected');
 						if(settings.oncheck){
 							if(settings.oncheck(groupname)===false){
 								$(this).attr('checked', false);
@@ -70,6 +78,7 @@
 						settings.checked.push(groupname);
 					}else{
 						var index=settings.checked.indexOf(groupname);
+						element.attr('selected',null);
 						if(settings.onuncheck){
 							if(settings.onuncheck(groupname)===false){
 								$(this).attr('checked',true);
@@ -119,11 +128,11 @@
 							var li=$(this).parent();
 							$(this).remove();
 							li.text('+ '+settings.createText);
-							li.before(createItem($(this).val()));
+							li.before(createItem(this));
+							var select=button.parent().next();
+							select.append($('<option selected="selected" value="'+$(this).val()+'">'+$(this).val()+'</option>'));
 							li.prev().children('input').trigger('click');
 							button.parent().data('preventHide',false);
-							var select=button.parent().next();
-							select.append($('<option value="'+$(this).val()+'">'+$(this).val()+'</option>'));
 							if(settings.createCallback){
 								settings.createCallback();
 							}