--- less.module	2011-11-19 22:05:12.990505102 -0800
+++ /tmp/less.module	2011-11-19 22:10:41.643839545 -0800
@@ -56,17 +56,25 @@ function _less_build(&$vars, $hook) {
 
   $css = $vars['css'];
 
-  $less_path = file_directory_path() .'/less';
-
+  $mkdir = FALSE;
+  $devel = variable_get('less_devel', FALSE);
+  $less_dir = variable_get('less_dir', '');
   // Flush compiled LESS files if developer mode is enabled
-  if (variable_get('less_devel', FALSE)) {
-    _less_recursive_delete($less_path);
-    if (user_access(LESS_PERMISSION) && flood_is_allowed('less_devel_warning', 1)) {
+  if (!$less_dir || $devel) {
+    $less_dir = microtime(TRUE);
+    variable_set('less_dir', $less_dir);
+    $mkdir = TRUE;
+    if ($devel && user_access(LESS_PERMISSION) && flood_is_allowed('less_devel_warning', 1)) {
       flood_register_event('less_devel_warning');
       drupal_set_message(t('LESS files are being regenerated on every request. Remember to <a href="!url">turn off</a> this feature on production websites.', array("!url" => url('admin/settings/less'))), 'status');
     }
   }
 
+  $less_path = file_directory_path() .'/less/' . $less_dir;
+  if ($mkdir) {
+    mkdir($less_path);
+  }
+
   foreach ($css as $media => $types) {
     foreach ($types as $type => $files) {
 
@@ -194,13 +202,25 @@ function _less_recursive_delete($path) {
 function less_flush_caches() {
   $semaphore = variable_get('cron_semaphore', FALSE);
   if (!$semaphore) {
-    // Delete all generated files.
-    _less_recursive_delete(file_directory_path() . '/less');
+    $less_dir = microtime(TRUE);
+    variable_set('less_dir', $less_dir);
+    mkdir(file_directory_path() .'/less/' . $less_dir);
   }
   return array();
 }
 
 /**
+ * Implements hook_cron().
+ */
+function less_cron() {
+  foreach (new DirectoryIterator(file_directory_path() . '/less') as $file) {
+    if (preg_match('|^(\d+)\.\d+$|', $file->getFilename(), $matches) && time() - $matches[1] > 900) {
+      _less_recursive_delete($file->getPathName());
+    }
+  }
+}
+
+/**
  * Implementation of hook_requirements().
  *
  * @param $phase The phase in which hook_requirements is run: install or runtime.
