diff --git a/packages/node_modules/@node-red/nodes/core/common/20-inject.html b/packages/node_modules/@node-red/nodes/core/common/20-inject.html
index 41fa8b66f..bd17e1635 100644
--- a/packages/node_modules/@node-red/nodes/core/common/20-inject.html
+++ b/packages/node_modules/@node-red/nodes/core/common/20-inject.html
@@ -539,12 +539,10 @@
                     var propertyValue = $('',{class:"node-input-prop-property-value",type:"text"})
                         .css("width","calc(70% - 30px)")
                         .appendTo(row)
-                        .typedInput({default:'str',types:['flow','global','str','num','bool','json','bin','date','jsonata','env','msg']});
+                        .typedInput({default:prop.vt,types:['flow','global','str','num','bool','json','bin','date','jsonata','env','msg']});
 
                     propertyName.typedInput('value',prop.p);
-
                     propertyValue.typedInput('value',prop.v);
-                    propertyValue.typedInput('type',prop.vt);
                 },
                 removable: true,
                 sortable: true
diff --git a/packages/node_modules/@node-red/nodes/core/function/15-change.html b/packages/node_modules/@node-red/nodes/core/function/15-change.html
index f39f2355c..b40039028 100644
--- a/packages/node_modules/@node-red/nodes/core/function/15-change.html
+++ b/packages/node_modules/@node-red/nodes/core/function/15-change.html
@@ -115,10 +115,10 @@
             var regex = this._("change.label.regex");
             var deepCopyLabel = this._("change.label.deepCopy");
 
-            function createPropertyValue(row2_1,row2_2) {
+            function createPropertyValue(row2_1, row2_2, defaultType) {
                 var propValInput = $('',{class:"node-input-rule-property-value",type:"text"})
                     .appendTo(row2_1)
-                    .typedInput({default:'str',types:['msg','flow','global','str','num','bool','json','bin','date','jsonata','env']});
+                    .typedInput({default:defaultType||'str',types:['msg','flow','global','str','num','bool','json','bin','date','jsonata','env']});
 
                 var dcLabel = $('').appendTo(row2_2);
                 var deepCopy = $('').appendTo(dcLabel)
@@ -129,20 +129,20 @@
                 })
                 return [propValInput, deepCopy];
             }
-            function createFromValue(row3_1) {
+            function createFromValue(row3_1, defaultType) {
                 return $('',{class:"node-input-rule-property-search-value",type:"text"})
                 .appendTo(row3_1)
-                .typedInput({default:'str',types:['msg','flow','global','str','re','num','bool','env']});
+                .typedInput({default:defaultType||'str',types:['msg','flow','global','str','re','num','bool','env']});
             }
-            function createToValue(row3_2) {
+            function createToValue(row3_2, defaultType) {
                 return $('',{class:"node-input-rule-property-replace-value",type:"text"})
                 .appendTo(row3_2)
-                .typedInput({default:'str',types:['msg','flow','global','str','num','bool','json','bin','env']});
+                .typedInput({default:defaultType||'str',types:['msg','flow','global','str','num','bool','json','bin','env']});
             }
-            function createMoveValue(row4) {
+            function createMoveValue(row4, defaultType) {
                 return $('',{class:"node-input-rule-property-move-value",type:"text"})
                 .appendTo(row4)
-                .typedInput({default:'msg',types:['msg','flow','global']});
+                .typedInput({default:defaultType||'msg',types:['msg','flow','global']});
             }
 
             $('#node-input-rule-container').css('min-height','150px').css('min-width','450px').editableList({
@@ -268,33 +268,22 @@
                     propertyName.typedInput('value',rule.p);
                     propertyName.typedInput('type',rule.pt);
                     if (rule.t == "set") {
-                        if(!propertyValue) {
-                            var parts = createPropertyValue(row2_1, row2_2);
-                            propertyValue = parts[0];
-                            deepCopy = parts[1];
-                        }
+                        var parts = createPropertyValue(row2_1, row2_2, rule.tot);
+                        propertyValue = parts[0];
+                        deepCopy = parts[1];
                         propertyValue.typedInput('value',rule.to);
-                        propertyValue.typedInput('type',rule.tot);
                         deepCopy.prop("checked", !!rule.dc);
                     }
                     if (rule.t == "move") {
-                        if(!moveValue) {
-                            moveValue = createMoveValue(row4);
-                        }
+                        moveValue = createMoveValue(row4,rule.tot);
                         moveValue.typedInput('value',rule.to);
-                        moveValue.typedInput('type',rule.tot);
                     }
                     if (rule.t == "change") {
-                        if(!fromValue) {
-                            fromValue = createFromValue(row3_1);
-                        }
+                        fromValue = createFromValue(row3_1, rule.fromt);
                         fromValue.typedInput('value',rule.from);
-                        fromValue.typedInput('type',rule.fromt);
-                        if (!toValue) {
-                            toValue = createToValue(row3_2);
-                        }
+
+                        toValue = createToValue(row3_2,rule.tot);
                         toValue.typedInput('value',rule.to);
-                        toValue.typedInput('type',rule.tot);
                     }
                     selectField.change();
                     container[0].appendChild(fragment);