diff --git a/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/FormUtil.js b/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/FormUtil.js
index 6e4f50e345e09e7c2cff4c1c616b89382d88fa1c..d662e829df234724be5d2a5adea5f063223216b3 100644
--- a/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/FormUtil.js
+++ b/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/FormUtil.js
@@ -872,6 +872,9 @@ var FormUtil = new function() {
 		}
 		
 		if(text) {
+		    if(typeof(text) != 'string') { // Array case
+                text = text.join(", ");
+            }
 			text = text.replace(/(?:\r\n|\r|\n)/g, '\n'); //Normalise carriage returns
 		}
 
diff --git a/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormView.js b/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormView.js
index 8e21aeedef73f8593a4a2fa79e84d37d9b80dc17..1778f402aa8de553dd3bffc398e091d40a377283 100644
--- a/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormView.js
+++ b/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormView.js
@@ -565,7 +565,7 @@ function ExperimentFormView(experimentFormController, experimentFormModel) {
                                 $controlGroup = FormUtil.getFieldForComponentWithLabel($component, propertyType.label);
                             }
                         } else if(propertyType.dataType === "SAMPLE") {
-                            var $component = new SampleField(false, '', false, value, true);
+                            var $component = new SampleField(false, '', false, value, true, propertyTypeV3.isMultiValue());
                             $controlGroup = FormUtil.getFieldForComponentWithLabel($component, propertyType.label);
                         } else {
                     	    $controlGroup = FormUtil.createPropertyField(propertyType, value);
@@ -587,10 +587,15 @@ function ExperimentFormView(experimentFormController, experimentFormModel) {
 						} else if(propertyType.dataType === "TIMESTAMP" || propertyType.dataType === "DATE") {
 						} else if(propertyTypeV3.isMultiValue()) {
 						    if(value) {
-						        var valueArray = value.split(',');
-						        valueArray = valueArray.map(function(item){ return item.trim(); });
-						        $component.val(valueArray);
-						    }
+                                var valueArray;
+                                if(Array.isArray(value)) {
+                                    valueArray = value;
+                                } else {
+                                    valueArray = value.split(',');
+                                    valueArray = valueArray.map(function(item){ return item.trim(); });
+                                }
+                                $component.val(valueArray);
+                            }
 						} else {
 							$component.val(value);
 						}
diff --git a/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/SampleFormView.js b/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/SampleFormView.js
index fa2e86a0b1074b017b299c28cd15d8e4e672adac..e623ef6f987caf7faf7fe9d04a99cd873e001a82 100644
--- a/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/SampleFormView.js
+++ b/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/SampleFormView.js
@@ -732,7 +732,7 @@ function SampleFormView(sampleFormController, sampleFormModel) {
                                 $controlGroup = FormUtil.getFieldForComponentWithLabel($component, propertyType.label, null, null, semanticAnnotations);
                             }
                         } else if(propertyType.dataType === "SAMPLE") {
-                            var $component = new SampleField(false, '', false, value, true);
+                            var $component = new SampleField(false, '', false, value, true, propertyTypeV3.isMultiValue());
                             $controlGroup = FormUtil.getFieldForComponentWithLabel($component, propertyType.label, null, null, semanticAnnotations);
                         } else { // The base case paints the property value as a label
                             $controlGroup = FormUtil.createPropertyField(propertyType, value, semanticAnnotations);
@@ -741,13 +741,25 @@ function SampleFormView(sampleFormController, sampleFormModel) {
 						continue;
 					}
 				} else {
-					var $component = FormUtil.getFieldForPropertyType(propertyType, value);
+					// var $component = FormUtil.getFieldForPropertyType(propertyType, value);
+					var $component = FormUtil.getFieldForPropertyType(propertyType, value, propertyTypeV3.isMultiValue());
 
 					//Update values if is into edit mode
 					if(this._sampleFormModel.mode === FormMode.EDIT || loadFromTemplate) {
 						if(propertyType.dataType === "BOOLEAN") {
 						    FormUtil.setFieldValue(propertyType, $component, value);
 						} else if(propertyType.dataType === "TIMESTAMP" || propertyType.dataType === "DATE") {
+						} else if(propertyTypeV3.isMultiValue()) {
+						    if(value) {
+								var valueArray;
+								if(Array.isArray(value)) {
+									valueArray = value;
+								} else {
+									valueArray = value.split(',');
+							        valueArray = valueArray.map(function(item){ return item.trim(); });
+								}
+						        $component.val(valueArray);
+						    }
 						} else {
 							$component.val(value);
 						}
@@ -755,7 +767,7 @@ function SampleFormView(sampleFormController, sampleFormModel) {
 						$component.val(""); //HACK-FIX: Not all browsers show the placeholder in Bootstrap 3 if you don't set an empty value.
 					}
 
-					var changeEvent = function(propertyType) {
+					var changeEvent = function(propertyType, isMultiValue) {
 						return function(jsEvent, newValue) {
 							var propertyTypeCode = null;
 							propertyTypeCode = propertyType.code;
@@ -775,7 +787,40 @@ function SampleFormView(sampleFormController, sampleFormModel) {
 								if(newValue !== undefined && newValue !== null) {
 									_this._sampleFormModel.sample.properties[propertyTypeCode] = Util.getEmptyIfNull(newValue);
 								} else {
-									_this._sampleFormModel.sample.properties[propertyTypeCode] = Util.getEmptyIfNull(field.val());
+									// _this._sampleFormModel.sample.properties[propertyTypeCode] = Util.getEmptyIfNull(field.val());
+									var lastSelected = Util.getEmptyIfNull($('option', this).filter(':selected:last').val());
+                                    var dataLast = field.data('last');
+                                     if(propertyType.dataType === "CONTROLLEDVOCABULARY" && isMultiValue) {
+                                         var props = _this._sampleFormModel.sample.properties[propertyTypeCode];
+                                         if (field.val()) {
+                                        if(props !== undefined) {
+                                            if(props != '' && field.val().includes('')) {
+                                                _this._sampleFormModel.sample.properties[propertyTypeCode] = '';
+                                                field.val([]);
+                                            } else {
+                                                if(props == '' && field.val().includes('')) {
+                                                    var removedEmpty = field.val().filter(x => x != '');
+                                                    _this._sampleFormModel.sample.properties[propertyTypeCode] = removedEmpty;
+                                                    field.val(removedEmpty);
+                                                } else {
+                                                    _this._sampleFormModel.sample.properties[propertyTypeCode] = Util.getEmptyIfNull(field.val());
+                                                }
+                                            }
+                                        } else {
+                                            if(field.val().includes('')) {
+                                                _this._sampleFormModel.sample.properties[propertyTypeCode] = '';
+                                                field.val([]);
+                                            } else {
+                                                _this._sampleFormModel.sample.properties[propertyTypeCode] = field.val();
+                                            }
+                                        }
+                                         } else {
+                                              _this._sampleFormModel.sample.properties[propertyTypeCode] = Util.getEmptyIfNull(field.val());
+                                         }
+                                    } else {
+                                        _this._sampleFormModel.sample.properties[propertyTypeCode] = Util.getEmptyIfNull(field.val());
+                                    }
+                                    field.data('last', field.val());
 								}
 							}
 						}
@@ -813,7 +858,7 @@ function SampleFormView(sampleFormController, sampleFormModel) {
 					} else if(propertyType.dataType === "TIMESTAMP" || propertyType.dataType === "DATE") {
 						$component.on("dp.change", changeEvent(propertyType));
 					} else {
-						$component.change(changeEvent(propertyType));
+						$component.change(changeEvent(propertyType, propertyTypeV3.isMultiValue()));
 					}
 
                     $controlGroup = FormUtil.getFieldForComponentWithLabel($component, propertyType.label, null, null, semanticAnnotations);
diff --git a/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/widgets/SampleField.js b/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/widgets/SampleField.js
index c2d7d1d3c175ab200fcf06e680a4a16888de96da..90731cf706c84104782a5e8aed25d36de898cb83 100644
--- a/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/widgets/SampleField.js
+++ b/ui-eln-lims/src/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/widgets/SampleField.js
@@ -29,11 +29,23 @@ function SampleField(isRequired,
     var initialised = false;
 	var storedParams = null;
 	var changeListener = null;
-    var initialValue = initialValue ? initialValue.split(',').map(x => x.trim()) : initialValue;
     var isSingleValue = true;
     if (isMultiValue) {
         isSingleValue = false;
     }
+    this.getInitialValue = function(value) {
+        if(value) {
+            if(Array.isArray(value)) {
+                return value;
+            } else {
+                return initialValue.split(',').map(x => x.trim());
+            }
+        } else {
+            return value;
+        }
+    }
+    var initialValue = this.getInitialValue(initialValue);
+
 
 	//
 	// Form API