nRF24L01 Mirf hanging when receiving a value

My project is an Arduino run RC car with remote control using two nRF24L01 chips connected to two separate Arduinos, the controller for the motors is a simple H-Bridge chip (L293d). While coding I have come across problems between Serial output to the computer and the Mirf library. At odd times I will get hanging and sometimes no serial at all. It will send some output then stop. This occurs while transmitting and receiving. Right now I have working code for what I want to accomplish while transmitting. On the receiving end I can receive the value and print to serial, but as soon as I add any code to do anything with that value and turn on the motors the whole thing freezes. If anyone has any idea on why this is happening I am open to suggestions.

The code I am using is based heavily off the code found here:http://chalmersphyscomp10.wordpress.com/2010/08/31/arduino-and-rfnrf24l01/

My actual code for receiving is below, the code executes fine when I comment out the switch-case code.

#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>
#include <MirfSpiDriver.h>
 
int inVal;
//int ledValue;
 
const int motorPin1=4;
const int motorPin2=8;

const int motorPin3=5;
const int motorPin4=10;

const int enable1=2;
const int enable2=3;
 
void setup(){
 
  Serial.begin(9600);
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);
  pinMode(enable1, OUTPUT);
  pinMode(enable2, OUTPUT);
  
  Mirf.spi = &MirfHardwareSpi;
  Mirf.init();
  Mirf.setRADDR((byte *)"serv1");
  Mirf.payload = sizeof(inVal);
  Mirf.config();
}
 
void loop(){
 
  while(!Mirf.dataReady()){
  }
  Mirf.getData((byte *) &inVal);
  
  Serial.println(inVal);
  switch (inVal){
    case 0:
    digitalWrite(enable1, LOW);
    digitalWrite(enable2, LOW);
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, LOW);
    break;
  case 1:
    digitalWrite(enable1, HIGH);
    digitalWrite(enable2, LOW);
    digitalWrite(motorPin1, HIGH);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, LOW);
    break;
  case 2:
    digitalWrite(enable1, HIGH);
    digitalWrite(enable2, LOW);
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, HIGH);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, LOW);
    break;
  case 7:
    digitalWrite(enable1, LOW);
    digitalWrite(enable2, HIGH);
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, HIGH);
    digitalWrite(motorPin4, LOW);
    break;
  case 8:
    digitalWrite(enable1, LOW);
    digitalWrite(enable2, HIGH);
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, HIGH);
    break;
  case 3:
    digitalWrite(enable1, HIGH);
    digitalWrite(enable2, LOW);
    digitalWrite(motorPin1, HIGH);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, LOW);
    break;
  case 4:
    digitalWrite(enable1, HIGH);
    digitalWrite(enable2, HIGH);
    digitalWrite(motorPin1, HIGH);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, HIGH);
    digitalWrite(motorPin4, LOW);
    break;
  case 5:
    digitalWrite(enable1, HIGH);
    digitalWrite(enable2, HIGH);
    digitalWrite(motorPin1, HIGH);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, HIGH);
    break;
  case 6:
    digitalWrite(enable1, HIGH);
    digitalWrite(enable2, HIGH);
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, HIGH);
    digitalWrite(motorPin3, HIGH);
    digitalWrite(motorPin4, LOW);
    break;
  default:
  break;
  }
  delay(10);
}

I think that ManaicBug RF24 libraries are the best to use. Try with it.