Yeah, it would break backward compatibility.  The code is a bit ugly but probably worth keeping compatibility.