diff -urp ubercart.orig/uc_cart/uc_cart.module ubercart/uc_cart/uc_cart.module
--- ubercart.orig/uc_cart/uc_cart.module	2009-04-28 15:03:14.000000000 -0600
+++ ubercart/uc_cart/uc_cart.module	2009-08-04 17:19:04.000000000 -0600
@@ -175,35 +175,30 @@ function uc_cart_menu() {
 }
 
 /**
- * Implementation of hook_enable().
+ * Implementation of hook_imagecache_default_presets
  */
-function uc_cart_enable() {
-  // Create an Imagecache preset for the cart view form.
-  if (module_exists('imagecache')) {
-    $preset_name = 'cart';
-    $preset = imagecache_preset_by_name($preset_name);
-    if (empty($preset)) {
-      // No preset of that name, so make a new one.
-      $preset = imagecache_preset_save(array('presetname' => $preset_name));
-    }
-
-    $actions = imagecache_preset_actions($preset);
-    if (empty($actions)) {
-      // The preset has no actions, so scale the image.
-      $action = array(
+function uc_cart_imagecache_default_presets() {
+  $presets = array();
+  $presets['cart'] = array (
+    'presetname' => 'cart',
+    'actions' =>
+    array (
+      0 =>
+      array (
+        'weight' => '0',
+        'module' => 'uc_cart',
         'action' => 'imagecache_scale',
-        'presetid' => $preset['presetid'],
-        'weight' => 0,
-        'data' => array(
+        'data' =>
+        array (
           'width' => '50',
           'height' => '50',
           'upscale' => 0,
         ),
-      );
-      imagecache_action_save($action);
-    }
-  }
-}
+      ),
+    ),
+  );
+  return $presets;
+} 
 
 /**
  * Implementation of hook_theme().
diff -urp ubercart.orig/uc_catalog/uc_catalog.module ubercart/uc_catalog/uc_catalog.module
--- ubercart.orig/uc_catalog/uc_catalog.module	2009-04-18 01:29:19.000000000 -0600
+++ ubercart/uc_catalog/uc_catalog.module	2009-08-04 17:22:36.000000000 -0600
@@ -135,36 +135,35 @@ function uc_catalog_perm() {
  * Add imagecache preset "uc_category".
  */
 function uc_catalog_enable() {
-  if (module_exists('imagecache')) {
-    $preset_name = 'uc_category';
-    $preset = imagecache_preset_by_name($preset_name);
-
-    if (empty($preset)) {
-      // No preset of that name, so make a new one.
-      $preset = imagecache_preset_save(array('presetname' => $preset_name));
-    }
-
-    $actions = imagecache_preset_actions($preset);
+  foreach (uc_product_types() as $type) {
+    uc_catalog_add_node_type($type);
+  }
+}
 
-    if (empty($actions)) {
-      // The preset has no actions, so scale the image.
-      $action = array(
+/**
+ * Implementation of hook_imagecache_default_presets
+ */
+function uc_catalog_imagecache_default_presets() {
+  $presets = array();
+  $presets['uc_category'] = array (
+    'presetname' => 'uc_category',
+    'actions' =>
+    array (
+      0 =>
+      array (
+        'weight' => '0',
+        'module' => 'uc_category',
         'action' => 'imagecache_scale',
-        'presetid' => $preset['presetid'],
-        'weight' => 0,
-        'data' => array(
+        'data' =>
+        array (
           'width' => '100',
           'height' => '100',
           'upscale' => 0,
         ),
-      );
-      imagecache_action_save($action);
-    }
-  }
-
-  foreach (uc_product_types() as $type) {
-    uc_catalog_add_node_type($type);
-  }
+      ),
+    ),
+  );
+  return $presets;
 }
 
 function uc_catalog_theme() {
diff -urp ubercart.orig/uc_product/uc_product.module ubercart/uc_product/uc_product.module
--- ubercart.orig/uc_product/uc_product.module	2009-05-07 14:52:29.000000000 -0600
+++ ubercart/uc_product/uc_product.module	2009-08-04 17:36:24.000000000 -0600
@@ -273,9 +273,6 @@ function uc_product_enable() {
     uc_product_add_default_image_field();
   }
 
-  if (module_exists('imagecache')) {
-    uc_product_add_imagecache_presets();
-  }
 }
 
 function uc_product_theme() {
@@ -1885,60 +1882,66 @@ function uc_product_add_default_image_fi
   }
 }
 
-function uc_product_add_imagecache_presets() {
-  $presets = array('product', 'product_full', 'product_list', 'uc_thumbnail');
-  if (module_exists('uc_catalog')) {
-    $presets[] = 'uc_category';
-  }
-  if (module_exists('uc_cart')) {
-    $presets[] = 'cart';
-  }
-
-  foreach ($presets as $preset_name) {
-    $preset = imagecache_preset_by_name($preset_name);
-    if (empty($preset)) {
-      // No preset of that name, so make a new one.
-      $preset = imagecache_preset_save(array('presetname' => $preset_name));
-    }
-
-    $actions = imagecache_preset_actions($preset);
-    if (empty($actions)) {
-      // The preset has no actions, so scale the image.
-      $action = array(
-        'action' => 'imagecache_scale',
-        'presetid' => $preset['presetid'],
-        'weight' => 0,
-        'data' => array(
-          'upscale' => 0,
+/**
+ * Implementation of hook_imagecache_default_presets
+ */
+function uc_product_imagecache_default_presets() {
+  $presets = array();
+  $presets['product'] = array (
+    'presetname' => 'product',
+    'actions' =>
+      array (
+        0 =>
+        array (
+          'weight' => '0',
+          'module' => 'uc_product',
+          'action' => 'imagecache_scale',
+          'data' =>
+          array (
+            'width' => '100',
+            'height' => '100',
+            'upscale' => 0,
+          ),
         ),
-      );
-      switch ($preset_name) {
-        case 'product':
-        case 'product_list':
-          $action['data']['width'] = '100';
-          $action['data']['height'] = '100';
-        break;
-        case 'cart':
-          $action['data']['width'] = '50';
-          $action['data']['height'] = '50';
-        break;
-        case 'uc_category':
-          $action['data']['width'] = '96';
-          $action['data']['height'] = '96';
-        break;
-        case 'uc_thumbnail':
-          $action['data']['width'] = '35';
-          $action['data']['height'] = '35';
-        break;
-        default:
-          // Do not save the action and get the next preset.
-          // Continue thinks swtich() is a loop, so continue it and the
-          // foreach().
-        continue 2;
-      }
-      imagecache_action_save($action);
-    }
-  }
+      ),
+  );
+  $presets['product_list'] = array (
+    'presetname' => 'product_list',
+    'actions' =>
+      array (
+        0 =>
+        array (
+          'weight' => '0',
+          'module' => 'uc_product',
+          'action' => 'imagecache_scale',
+          'data' =>
+          array (
+            'width' => '100',
+            'height' => '100',
+            'upscale' => 0,
+          ),
+        ),
+      ),
+  );
+  $presets['uc_thumbnail'] = array (
+    'presetname' => 'product_list',
+    'actions' =>
+      array (
+        0 =>
+        array (
+          'weight' => '0',
+          'module' => 'uc_product',
+          'action' => 'imagecache_scale',
+          'data' =>
+          array (
+            'width' => '35',
+            'height' => '35',
+            'upscale' => 0,
+          ),
+        ),
+      ),
+  );
+  return $presets;
 }
 
 /**
