diff --git a/src/template/AttributeOps.js b/src/template/AttributeOps.js
index <HASH>..<HASH> 100644
--- a/src/template/AttributeOps.js
+++ b/src/template/AttributeOps.js
@@ -217,15 +217,30 @@ let setValueForProperty = (node, name, value) => {
  */
 
 let setSelectValue = (node, value) => {
-
+	
 	const multiple = isArray(value),
 		options = node.options;
 
+if ( multiple && (typeof value[0] === 'number')) {
+ let selectedValue = {};
+    for (i = 0; i < value.length; i++) {
+      selectedValue['' + value[i]] = true;
+    }
+
+    for (i = 0; i < options.length; i++) {
+      var selected = selectedValue.hasOwnProperty(options[i].value);
+      if (options[i].selected !== selected) {
+        options[i].selected = true;
+      }
+    }
+
+}	 else {
 	let optionNode;
 	for (let i = 0; i < options.length; i++) {
 		optionNode = options[i];
 		optionNode.selected = value != null && (multiple ? inArray(value, optionNode.value) : optionNode.value == value);
 	}
+}
 };
 
 /**
select / select multiple bug fix

- didn't handle numbers correctly