diff --git a/client/pifr_client.cron.inc b/client/pifr_client.cron.inc
index 2e67e1e..5b0f58b 100644
--- a/client/pifr_client.cron.inc
+++ b/client/pifr_client.cron.inc
@@ -35,12 +35,16 @@ function pifr_client_cron_report_status() {
 }
 
 function pifr_client_cron_request_next() {
-  module_load_include('xmlrpc.inc', 'pifr_client');
-  if ($test = pifr_client_xmlrpc_request_next()) {
-    variable_set('pifr_client_test',  $test);
+  // Perform a sanity check on the testbot environment before loading the next
+  // test.  (Clear checkout directory and verify it clears successfully)
+  if (pifr_client_cron_prepare()) {
+    module_load_include('xmlrpc.inc', 'pifr_client');
+    if ($test = pifr_client_xmlrpc_request_next()) {
+      variable_set('pifr_client_test',  $test);
 
-    pifr_client_cron_exec_background('curl --insecure ' . url('pifr/client/review', array('absolute' => TRUE)));
-    return TRUE;
+      pifr_client_cron_exec_background('curl --insecure ' . url('pifr/client/review', array('absolute' => TRUE)));
+      return TRUE;
+    }
   }
   return FALSE;
 }
@@ -49,6 +53,37 @@ function pifr_client_cron_is_busy() {
   return variable_get('pifr_client_test', FALSE) || pifr_client_cron_test_processes_get();
 }
 
+function pifr_client_cron_prepare() {
+  $checkout_directory = file_directory_path() . '/checkout';
+  $review_directory = file_directory_path() . '/review';
+
+  // Clean up checkout directory.
+  if (file_exists($checkout_directory)) {
+    // Set checkout directory permissions to allow delete
+    exec('chmod -R u+rw ' . $checkout_directory, $output, $status);
+    if ($status != 0) {
+      pifr_debug("Unable to modify permissions on checkout directory: Status %status\n Output: %output", array('%status' => $status, '%output' => ($output ? "[$output]" : 'no output')));
+      return FALSE;
+    }
+    // Remove checkout directory.
+    exec('rm -rf ' . $checkout_directory, $output, $status);
+    if ($status != 0) {
+      pifr_debug("Failed to clear checkout directory: Status %status\n Output: %output", array('%status' => $status, '%output' => ($output ? "[$output]" : 'no output')));
+      return FALSE;
+    }
+  }
+  // Cleanup review directory.
+  if (file_exists($review_directory)) {
+    // Remove review directory.
+    exec('rm -rf ' . $review_directory, $output, $status);
+    if ($status != 0) {
+      pifr_debug("Failed to clear review directory: Status %status\n Output: %output", array('%status' => $status, '%output' => ($output ? "[$output]" : 'no output')));
+      return FALSE;
+    }
+  }
+  return TRUE;
+}
+
 function pifr_client_cron_reset() {
 
   pifr_client_cron_clear_variables();
