Index: modules/ecommerce/product/product.module
===================================================================
RCS file: /cvs/drupal/contributions/modules/ecommerce/product/product.module,v
retrieving revision 1.116.2.17
diff -u -r1.116.2.17 product.module
--- modules/ecommerce/product/product.module	3 Nov 2006 11:47:49 -0000	1.116.2.17
+++ modules/ecommerce/product/product.module	30 Nov 2006 17:34:26 -0000
@@ -1025,6 +1025,24 @@
 }
 
 /**
+ * Return a valid interval string for strtotime().
+ */
+function product_unit_interval($unit, $interval) {
+  switch (strtoupper($unit)) {
+    case 'D':
+      return $interval.' days';
+    case 'W':
+      return $interval.' weeks';
+    case 'M':
+      return $interval.' months';
+    case 'Y':
+      return $interval.' years';
+  }
+
+  return $interval.' '.$ival;
+}
+
+/**
  * Returns a human readable string summarizing the recurring payment details for a product.
  */
 function product_recurring_nice_string($node) {
@@ -1088,7 +1106,7 @@
     foreach ($notifications as $type => $note) {
       // If the item hasn't expired.
       if ($item->expires > $time) {
-        $next_notify = strtotime($note->interval. ' '. product_unit_nice_name($note->unit, $note->interval). ' ago', $item->expires);
+        $next_notify = strtotime(product_unit_interval($note->unit, $note->interval). ' ago', $item->expires);
         // Grab the valid notification.
         if ($next_notify < $time && $next_notify > $item->last_notify && ($item->price_cycle > 1 || $item->price_cycle = -1)) {
           $note->next_notify = $next_notify;
