Dynamic Content does not work right in Subject field

I'm trying to get this conditional merge to work.
[if:firstname][firstname], s[else]S[endif]peech Therapy Resources
but it merges  as:
, rRecover  (with no field value present)

So I tested the Solution # 2 from this page:

I'ts this:

   [if:firstname]Hey [firstname], c[else]C[endif]heck out or VIP offer![endif]

but I get:

    Hey , cChec   (with no value present)
or Hey bina, c   (with a field value present.

See why 200,000 companies worldwide love Campaign Monitor.

From Australia to Zimbabwe, and everywhere in between, companies count on Campaign Monitor for email campaigns that boost the bottom line.

Get started for free