diff --git a/client/pifr_client.cron.inc b/client/pifr_client.cron.inc
index 1dcbe5a..329e062 100644
--- a/client/pifr_client.cron.inc
+++ b/client/pifr_client.cron.inc
@@ -23,11 +23,13 @@ function pifr_client_cron_run() {
 
 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);
+  if (variable_get('pifr_client_request_next_lock', FALSE) == FALSE) {
+    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;
 }
diff --git a/client/pifr_client.xmlrpc.inc b/client/pifr_client.xmlrpc.inc
index af5a174..3f4058e 100644
--- a/client/pifr_client.xmlrpc.inc
+++ b/client/pifr_client.xmlrpc.inc
@@ -23,8 +23,9 @@ function pifr_client_xmlrpc_version() {
  * @return array Test array, or FALSE.
  */
 function pifr_client_xmlrpc_request_next() {
+  variable_set('pifr_client_request_next_lock', TRUE);
   $response = xmlrpc(PIFR_CLIENT_SERVER . 'xmlrpc.php', 'pifr.next', PIFR_CLIENT_KEY);
-
+  variable_set('pifr_client_request_next_lock', FALSE);
   if ($response === FALSE) {
     watchdog('pifr_client', 'Failed to request next test: @message', array('@message' => xmlrpc_error_msg()), WATCHDOG_ERROR);
     return FALSE;
