The fill command has a very useful addition to it, the replace {name} feature, and this works on nearly all blocks. Except the end portal, which gives you an error.
To reproduce:
Be in snapshot 14w03a or above (discovered in 14w33c)
type /fill ~ ~3 ~ ~ ~4 ~ stone 0 replace air - if you had air above you, 2 blocks of stone should have been placed. But now try it with end_portal:
/fill ~ ~3 ~ ~ ~4 ~ end_portal 0 replace air - it gives this error message:
Data parsing failed: Invalid tag encountered, expected '{' as first char.
This also happens with /setblock
Invalid syntax.