--- loncom/loncron	2002/05/22 21:41:34	1.28
+++ loncom/loncron	2002/05/27 19:21:59	1.29
@@ -239,6 +239,7 @@ if ($psproc>250) { $notices++; }
 # --------------------------------------------------------------- clean out tmp
 print $fh '<hr><a name="tmp"><h2>Temporary Files</h2>';
 $cleaned=0;
+$old=0;
 while ($fname=<$perlvar{'lonDaemons'}/tmp/*>) {
                           my ($dev,$ino,$mode,$nlink,
                               $uid,$gid,$rdev,$size,
@@ -247,12 +248,24 @@ while ($fname=<$perlvar{'lonDaemons'}/tm
                           $now=time;
                           $since=$now-$mtime;
                           if ($since>$perlvar{'lonExpire'}) {
-                              $cleaned++;
-                              unlink("$fname");
+                              $line='';
+                              if (open(PROBE,$fname)) {
+				  $line=<PROBE>;
+                                  close(PROBE);
+			      }
+			      unless ($line=~/^CHECKOUTTOKEN\&/) {
+                                 $cleaned++;
+                                 unlink("$fname");
+			      } else {
+				  if ($since>100*$perlvar{'lonExpire'}) {
+                                     $cleaned++;
+                                     unlink("$fname");
+				 } else { $old++; }
+                              }
                           }
     
 }
-print $fh "Cleaned up ".$cleaned." files.";
+print $fh "Cleaned up ".$cleaned." files (".$old." old checkout tokens).";
 
 # ------------------------------------------------------------ clean out lonIDs
 print $fh '<hr><a name="tokens"><h2>Session Tokens</h2>';