Shortest self-modifying code to wish a happy New Year! Your code just has to print "Happy 2013".
However, if it detects that it's 2014, it has to modify itself (as a running process!!) and print "Happy 2014" instead.

By self-modifying I mean the running process must really modify itself: it should alter its own instructions while it is executing.

Shortest code wins.

-10% size bonus if it's general, so it works for 2015, etc.

Sorry if the task excludes some languages or systems where it's not possible...
Bash / shell script (35 chars - 10% = 31.5)
I think this shell script counts as self-modifying:

$ eval "y()(echo Happy `date +%Y`)";y
Happy 2013
$

At least, it does modify its own function y:

$ set | grep -A3 '^y ()'
y () 
{ 
    ( echo Happy 2015 )
}
$ 


@manatwork suggested eval &quot;y()(date +Happy\ %Y)&quot;;y, which produces the desired output, but I'm not sure if this counts as self-modifying, to the extent that it self-modifies with the current year.  The generated function is as follows, which won't be a different function on a yearly basis:

y () 
{ 
    ( date +Happy\ %Y )
}

If it does count, then the score is:
Bash / shell script (29 chars - 10% = 26.1)

A lot of entries don't seem to make any attempt to self-modify.  If we lift this restriction for shell-script, then we can do this which weighs in at:
15 chars - 10% = 13
date +Happy\ %Y