Works flawlessly, but Firefox 28 has (hidden) preferences for this! Rated 4 out of 5 stars
Since Firefox 28 there are three new items in about:config:
network.http.referer.XOriginPolicy: 0=always send, 1=send if base domains match, 2=send if hosts match
network.http.referer.spoofSource: false=real referer, true=spoof referer (use target URI as referer)
network.http.referer.trimmingPolicy: 0=send full URI, 1=scheme+host+port+path, 2=scheme+host+port
Referrer processing is done in this order. Thus, setting XOriginPolicy to 2 makes spoofSource and trimmingPolicy useless if going from a.example.com to b.example.com, since no referrer would be send anyway due to the XOriginPolicy.
If using the three new I'd suggest to set the old network.http.sendRefererHeader to 2 (default, always send referrer).