Index: poormanscron.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/poormanscron/poormanscron.module,v
retrieving revision 1.22.2.9
diff -u -p -r1.22.2.9 poormanscron.module
--- poormanscron.module	19 Feb 2010 18:12:58 -0000	1.22.2.9
+++ poormanscron.module	8 May 2010 22:46:02 -0000
@@ -89,7 +89,20 @@ function poormanscron_run_cron_check() {
     if ($time - $cron_last > $cron_threshold) {
       // Lock cron threshold semaphore.
       variable_set('cron_threshold_semaphore', $time);
+
+      // Force the current user to anonymous to ensure consistent permissions on
+      // cron runs.
+      session_save_session(FALSE);
+      $original_user = $GLOBALS['user'];
+      $GLOBALS['user'] = drupal_anonymous_user();
+
+      // Run the actual cron callback.
       $cron_run = drupal_cron_run();
+
+      // Restore the user.
+      $GLOBALS['user'] = $original_user;
+      session_save_session(TRUE);
+
       // Release the cron threshold semaphore.
       variable_del('cron_threshold_semaphore');
 
