When a prefix/suffix combination has one or more "Say Something with Text-To-Speech" actions in either prefix or suffix, if the command phrase for either is changed, the TTS actions will "freeze" their internal values for the rest of the session.
E.G. if the prefix contains
Say, 'prefix'
and the suffix contains
Say, 'suffix'
If these values are changed:
Say, 'change'
Say, 'both'
triggering the command will still speak "prefix suffix", despite the values visually updating(and saving to the profile, as they remain changed after restarting VoiceAttack).
No matter which change is made to the command phrase, be it adding or removing characters, or adding or removing dynamic command name variations, even though there is a "Profile load time" message in the log(as I have the "-showloadtime" command line option enabled), indicating data should have been refreshed, the TTS spoken words remain what they were before the command phrase change.
Changing the "Wait until speech completes before continuing command" did take effect, as the prefix TTS action now finished before the suffix would start, yet the spoken text remained the same.
This also happens with TTS actions that have random phrases, E.G. "test 1;test 2".
If a TTS action is added when the values are already frozen, it will speak the entered phrase the first time the command runs, but it those added actions are changed thereafter, they too will be frozen to their initial setting.
Although I did once get an added action to speak the same phrase as the already frozen one above it, but I couldn't replicate that.
If TTS actions are removed, they will speak their initial phrase, I.E. the values stay with their actions.
If a TTS action is given a token to speak, that value will be spoken correctly.
I don't know if any other actions are affected by this, but variables don't appear to be at least.
Nothing short of restarting VoiceAttack seems to unfreeze the values, even manually switching profiles doesn't solve it.