VirtualWire and AnalogWrite problems

I had the same issue 5 minutes ago and googled for some help to end up in this thread. I found some sort of workaround for this issue. Just surround the analogWrite() calls with a small delay to let the timer return to its normal function or.. I don't know what...

Here is exactly what I did:

        delay(10);
        
        analogWrite(ledR, 255 - r);
        analogWrite(ledG, 255 - g);
        analogWrite(ledB, 255 - b);
        
        delay(100);

the delay(10) and the delay(100) resolved my problem. Haven't tried different set of delays yet, just wanted to share this so that one should not suffer like I did for two days, wondering wtf is going on.