--- pricegun.module.o	2008-01-29 22:48:19.000000000 +0100
+++ pricegun.module	2008-10-17 10:08:36.000000000 +0200
@@ -82,15 +82,13 @@
   foreach ($form_values['ptypes'] as $ptype => $checked) {
     if ($checked) {
       $count = 0;
-      $products = db_query("SELECT nid FROM {ec_product} WHERE ptype = '%s'", $ptype);
+      $products = db_query("SELECT nid, price FROM {ec_product} WHERE ptype = '%s'", $ptype);
       while ($product = db_fetch_object($products)) {
-        $node = node_load($product->nid);
-        $price_old = $node->price;
-        $node->price = pricegun_round($form_values['rounding'], $node->price * $adjustment);
-        $node = node_submit($node);
-        node_save($node);
+        $price_old = $product->price;
+        $product->price = pricegun_round($form_values['rounding'], $price_old * $adjustment);
+        db_query("UPDATE {ec_product} SET price = %s WHERE nid = %d", $product->price, $product->nid);
         $count++;
-        watchdog('pricegun', t('Price updated from %old to %new for node %nid.', array('%nid' => $node->nid, '%old' => $price_old, '%new' => $node->price)));
+        watchdog('pricegun', t('Price updated from %old to %new for node %nid.', array('%nid' => $node->nid, '%old' => $price_old, '%new' => $product->price)));
       }
       drupal_set_message(t('%count product prices updated for type %ptype.', array('%count' => $count, '%ptype' => $ptypes[$ptype])));
     }
