diff --git a/imagecache.install b/imagecache.install
index 5a331e8..c9fa4cf 100644
--- a/imagecache.install
+++ b/imagecache.install
@@ -59,6 +59,10 @@ function imagecache_schema() {
         'length' => 255,
         'not null' => TRUE,
       ),
+      'description' => array(
+        'description' => t('Administrative description of this preset'),
+        'type' => 'text',
+      ),
     ),
     'primary key' => array('presetid'),
   );
@@ -320,3 +324,15 @@ function imagecache_update_6001() {
   db_change_field($ret, 'imagecache_action', 'weight', 'weight', array('type' => 'int', 'not null' => TRUE, 'default' => 0));
   return $ret;
 }
+
+/**
+ * Implementation of hook_update_N()
+ *
+ * Add a new text field to the {imagecache_preset} table for the preset description.
+ */
+function imagecache_update_6002() {
+   $ret = array();
+   $schema = imagecache_schema();
+   db_add_field($ret, 'imagecache_preset', 'description', $schema['imagecache_preset']['fields']['description']);
+   return $ret;
+}
\ No newline at end of file
diff --git a/imagecache.module b/imagecache.module
index 55d48ce..3ff812c 100644
--- a/imagecache.module
+++ b/imagecache.module
@@ -171,23 +171,23 @@ function imagecache_theme() {
   );
 
   foreach (imagecache_presets() as $preset) {
-    $theme['imagecache_formatter_'. $preset['presetname'] .'_default'] = array(
+    $theme['imagecache_formatter_'. $preset['presetid'] .'_default'] = array(
       'arguments' => array('element' => NULL),
       'function' => 'theme_imagecache_formatter_default',
     );
-    $theme['imagecache_formatter_'. $preset['presetname'] .'_linked'] = array(
+    $theme['imagecache_formatter_'. $preset['presetid'] .'_linked'] = array(
       'arguments' => array('element' => NULL),
       'function' => 'theme_imagecache_formatter_linked',
     );
-    $theme['imagecache_formatter_'. $preset['presetname'] .'_imagelink'] = array(
+    $theme['imagecache_formatter_'. $preset['presetid'] .'_imagelink'] = array(
       'arguments' => array('element' => NULL),
       'function' => 'theme_imagecache_formatter_imagelink',
     );
-    $theme['imagecache_formatter_'. $preset['presetname'] .'_path'] = array(
+    $theme['imagecache_formatter_'. $preset['presetid'] .'_path'] = array(
       'arguments' => array('element' => NULL),
       'function' => 'theme_imagecache_formatter_path',
     );
-    $theme['imagecache_formatter_'. $preset['presetname'] .'_url'] = array(
+    $theme['imagecache_formatter_'. $preset['presetid'] .'_url'] = array(
       'arguments' => array('element' => NULL),
       'function' => 'theme_imagecache_formatter_url',
     );
@@ -693,24 +693,24 @@ function imagecache_file_delete($file) {
 function imagecache_field_formatter_info() {
   $formatters = array();
   foreach (imagecache_presets() as $preset) {
-    $formatters[$preset['presetname'] .'_default'] = array(
-      'label' => t('@preset image', array('@preset' => $preset['presetname'])),
+    $formatters[$preset['presetid'] .'_default'] = array(
+      'label' => t('@preset image', array('@preset' => $preset['description'] ? $preset['description'] : $preset['presetname'])),
       'field types' => array('image', 'filefield'),
     );
-    $formatters[$preset['presetname'] .'_linked'] = array(
-      'label' => t('@preset image linked to node', array('@preset' => $preset['presetname'])),
+    $formatters[$preset['presetid'] .'_linked'] = array(
+      'label' => t('@preset image linked to node', array('@preset' => $preset['description'] ? $preset['description'] : $preset['presetname'])),
       'field types' => array('image', 'filefield'),
     );
-    $formatters[$preset['presetname'] .'_imagelink'] = array(
-      'label' => t('@preset image linked to image', array('@preset' => $preset['presetname'])),
+    $formatters[$preset['presetid'] .'_imagelink'] = array(
+      'label' => t('@preset image linked to image', array('@preset' => $preset['description'] ? $preset['description'] : $preset['presetname'])),
       'field types' => array('image', 'filefield'),
     );
-    $formatters[$preset['presetname'] .'_path'] = array(
-      'label' => t('@preset file path', array('@preset' => $preset['presetname'])),
+    $formatters[$preset['presetid'] .'_path'] = array(
+      'label' => t('@preset file path', array('@preset' => $preset['description'] ? $preset['description'] : $preset['presetname'])),
       'field types' => array('image', 'filefield'),
     );
-    $formatters[$preset['presetname'] .'_url'] = array(
-      'label' => t('@preset URL', array('@preset' => $preset['presetname'])),
+    $formatters[$preset['presetid'] .'_url'] = array(
+      'label' => t('@preset URL', array('@preset' => $preset['description'] ? $preset['description'] : $preset['presetname'])),
       'field types' => array('image', 'filefield'),
     );
   }
@@ -724,7 +724,9 @@ function theme_imagecache_formatter_default($element) {
   }
 
   // Extract the preset name from the formatter name.
-  $presetname = substr($element['#formatter'], 0, strrpos($element['#formatter'], '_'));
+  $presetid = substr($element['#formatter'], 0, strrpos($element['#formatter'], '_'));
+  $presets = imagecache_presets();
+  $presetname = $presets[$presetid]['presetname'];
   $style = 'linked';
   $style = 'default';
 
@@ -743,7 +745,9 @@ function theme_imagecache_formatter_linked($element) {
   }
 
   // Extract the preset name from the formatter name.
-  $presetname = substr($element['#formatter'], 0, strrpos($element['#formatter'], '_'));
+  $presetid = substr($element['#formatter'], 0, strrpos($element['#formatter'], '_'));
+  $presets = imagecache_presets();
+  $presetname = $presets[$presetid]['presetname'];
   $style = 'linked';
 
   $item = $element['#item'];
@@ -763,7 +767,9 @@ function theme_imagecache_formatter_imagelink($element) {
   }
 
   // Extract the preset name from the formatter name.
-  $presetname = substr($element['#formatter'], 0, strrpos($element['#formatter'], '_'));
+  $presetid = substr($element['#formatter'], 0, strrpos($element['#formatter'], '_'));
+  $presets = imagecache_presets();
+  $presetname = $presets[$presetid]['presetname'];
   $style = 'imagelink';
 
   $item = $element['#item'];
@@ -783,7 +789,9 @@ function theme_imagecache_formatter_path($element) {
   }
 
   // Extract the preset name from the formatter name.
-  $presetname = substr($element['#formatter'], 0, strrpos($element['#formatter'], '_'));
+  $presetid = substr($element['#formatter'], 0, strrpos($element['#formatter'], '_'));
+  $presets = imagecache_presets();
+  $presetname = $presets[$presetid]['presetname'];
 
   return imagecache_create_path($presetname, $element['#item']['filepath']);
 }
@@ -795,7 +803,9 @@ function theme_imagecache_formatter_url($element) {
   }
 
   // Extract the preset name from the formatter name.
-  $presetname = substr($element['#formatter'], 0, strrpos($element['#formatter'], '_'));
+  $presetid = substr($element['#formatter'], 0, strrpos($element['#formatter'], '_'));
+  $presets = imagecache_presets();
+  $presetname = $presets[$presetid]['presetname'];
 
   return imagecache_create_url($presetname, $element['#item']['filepath']);
 }
diff --git a/imagecache_ui.pages.inc b/imagecache_ui.pages.inc
index 2b1c6d1..15ce564 100644
--- a/imagecache_ui.pages.inc
+++ b/imagecache_ui.pages.inc
@@ -4,7 +4,7 @@
  * Preset Admin callbacks and required functions.
  */
 function imagecache_ui_preset_overview() {
-  $header = array(t('Preset Name'), t('Storage'), t('Actions'));
+  $header = array(t('Preset Name'), t('Storage'), t('Actions'), t('Description'));
   $rows = array();
   // Always clear the preset cache on this display.
   foreach (imagecache_presets(TRUE) as $preset) {
@@ -33,6 +33,7 @@ function imagecache_ui_preset_overview() {
         break;
     }
     $row[] = implode('&nbsp;&nbsp;&nbsp;&nbsp;', $links);
+    $row[] = $preset['description'] ? $preset['description'] : '';
     $rows[] = $row;
   }
   $output = theme('table', $header, $rows);
@@ -163,6 +164,15 @@ function imagecache_ui_preset_form($form_state, $preset = array()) {
     );
   }
 
+  $form['description'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Description'),
+    '#default_value' => $preset['description'],
+    '#description' => t('Administrative description of this preset'),
+    '#weight' => 8.9,
+    '#disabled' => ($preset['storage'] === IMAGECACHE_STORAGE_DEFAULT),
+  );
+  
   $form['submit'] = array(
     '#type' => 'submit',
     '#value' => isset($preset['storage']) && $preset['storage'] === IMAGECACHE_STORAGE_DEFAULT ? t('Override Defaults') : t('Save Preset'),
