I discovered that the UP simulator I was using is very forgiving regarding
"_" in form field names. But when I ran the page on an actual web phone,
it wouldn't compile. Unfortunately, there was no descriptive error message,
and it took hours before I found that the offensive code was:

<go href="wml_retailer_profile.asp" method="post">
<postfield name="prod_type" value="$(prod_type)"/>
</go>

I changed it to:

<go href="wml_retailer_profile.asp" method="post">
<postfield name="prodtype" value="$(prodtype)"/>
</go>

...and lived happily ever after