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.

200,000 companies around the world can't be wrong.

From Australia to Zimbabwe, and everywhere in between, companies count on 
Campaign Monitor for email campaigns that drive real business results.

Get started for free