That DHT11 library is interrupt driven, and the VirtualWire library works with timer interrupts.
This is a normal library without interfering with the interrupts: Arduino Playground - DHTLib
Because the VirtualWire interrupts might have influence on the timing of that code, it could return an error. So keep on requesting the DHT11 values until they are valid.