Labeling of controls/indicators on main vi's and subvi's are independent of each other. You can name a subvi control C1 and in your main you can create a control labeled M1 and connect the two together. The labels are independent. Correct me if I'm wrong but I think what you did is to create the subvi first, then you call it from the main, right click on the subvi input terminal, and select Create - Control. This will create a control in main and label it the same as the subvi. Then you opened the subvi and changed the label. You can't expect that change to show up in main. Labels are not linked that way. What is important is that the values are passed correctly, and it is unimportant what they are labeled. If you want consistency in labeling, you would have to manually change the labels in the main to match any changes made in the subvi. There is no automatic way to do it except to delete and create again as you mentioned. The best thing to do is to make the labels in a subvi as generic as possible. The labels in the main vi can then resemble their function, but does not have to match exactly. For example, my subvi has an array input called "State Buffer". My main passes an array into the subvi, and is called State Buf 1 in main. Later on in main, I may call the subvi again with a separate input called State Buf 2. Labels need not match, but it is apparent from my labelling that I am passing in a buffer of data of some sort.