I'm not exactly sure of what you want but it sounds very similar to the system I had before I implemented the "set on Return" method. "Set on Return" is a method used by web browsers and many other. Also when setting names in roster and groupchat. The current way is good because a user just started to set subject and then just regret it, just leaves the filed, and it is set to what it was before. Also, I think it is logically clearer for the user that the subject actually is set on Return (added this to tooltip).
I'm not exactly sure of what you want but it sounds very similar to the system I had before I implemented the "set on Return" method. "Set on Return" is a method used by web browsers and many other. Also when setting names in roster and groupchat. The current way is good because a user just started to set subject and then just regret it, just leaves the filed, and it is set to what it was before. Also, I think it is logically clearer for the user that the subject actually is set on Return (added this to tooltip).