Conflict between receiver module and SpeakJet

I have difficulties trying to get an RF link receiver and a SpeakJet chip cooperating in the same sketch. What I am trying to do is this:

  1. Read sensor data from another Arduino board using a simple 433 MHz radio receiver module with the VirtualWire library.
  2. Let the SpeakJet announce some of those values (or indeed any values I choose), like "Twentyfive ... Thirty..." etc.

I have both tasks working separately, but can't get them to play simultaneously, so to speak: With both the VirtualWire and SoftwareSerial stuff set up (for the receiver and SpeakJet respectively) only the receiving part works as expected, spitting out transmitted sensor figures to the serial monitor. Same result as if the SoftwareSerial configuration lines were commented out.

On the other hand, when I comment out the essential VW lines in setup(), the SpeakJet does its thing (pronouncing a dummy word like "Hello") through an amplied speaker, but the receiver does nothing, of course.

With both parts/libraries enabled it looks and sounds like the receiver output interfers with the SpeakJet's output. The SpeakJet is configured for 9600 bps (from Arduino digital pin 3). I have tested different bitrates for the RF receiver (attached to digital pin 11). At 2400, 4800 and 9600 random (but repeated) sounds are heard from the SpeakJet's speaker. At slower rates, nothing is heard.

Ultimately, I plan to have the SpeakJet only make occasional voice announcements, perhaps 2-3 times per minute on average, while the receiver (possibly an XBee) should run in every loop and output two-figured sensor data as soon as they are available (several times a second).

My question is this: Is it feasable to get both modules working the way I wish! Any ideas how?

Reply-to-myself:
I found a working solution to this problem. In every loop involving any SpeakJet output simply
(1) "throttle" the reception rx bitrate to a crawl, then halt the rx-ing,
(2) call the appropriate SpeakJet commands,
(3) reset the bitrate again and resume rx-ing.
Like this:

void loop()
{ ...
vw_setup(100);
vw_rx_stop();
for (int i=0; i<phraseSize; i++){
SpeakJet.print(phrase[i ], BYTE);
}
vw_setup(2400);
vw_rx_start();
...
}