Now there's one. And duh at myself of course. You need to put the parameter in double quotes since single quotes don't interpolate variables:
"tpasswd=$password". (Or maybe use the
qq "operator", which allows to choose your own delimiters like in
qq(tpasswd=$password).)
Makeshifts last the longest.