SoftwareSerial 7-E-1 problem

Hi, sorry to bring this thread back, but I have a question (at the end) that is relevant.

I'm using softserial to talk inverted 7E1, 1200 baud (SDI-12 protocol). I used the code changes from this thread

and got the error:
/var/folders/pk/zzpvz5bs0d589468n2bxsyz00000gn/T//ccPjw17q.s: Assembler messages:
/var/folders/pk/zzpvz5bs0d589468n2bxsyz00000gn/T//ccPjw17q.s:243: Error: register r24, r26, r28 or r30 required

Similar to the first post here.

I've applied the fix recommended here:

of changing
: "+r" (delay), "+a" (tmp)

to
: "+w" (delay), "+a" (tmp)

in the tunedDelay function.

My question is why did I need to make this fix in my copy of SoftwareSerial? The regular SoftwareSerial packaged in arduino 1.0.1 does not have this change and compiles fine. diff-ing the code, I made no changes to SoftwareSerial beyond the recv() and write() functions to convert to 7E1.