diff --git uc_node_checkout.module uc_node_checkout.module
index b1ac605..4c2cee8 100644
--- uc_node_checkout.module
+++ uc_node_checkout.module
@@ -913,3 +913,57 @@ function uc_node_checkout_load_order_product($order_product_id) {
 
   return $products[$order_product_id];
 }
+
+/**
+ * Implementation of hook_token_list().
+ */
+function uc_node_checkout_token_list($type = 'all') {
+  if ($type == 'node' || $type == 'product' || $type == 'ubercart' || $type == 'all') {
+    $tokens = array();
+    $tokens['referenced_product']['referenced-title'] = t("The title of the referenced product.");
+    $tokens['referenced_product']['model'] = t("The referenced product's model number.");
+    $tokens['referenced_product']['list_price'] = t("The referenced product's list price.");
+    $tokens['referenced_product']['cost'] = t("The referenced product's cost.");
+    $tokens['referenced_product']['sell_price'] = t("The referenced product's sell price.");
+    $tokens['referenced_product']['weight_units'] = t("The unit of measurement for the referenced product's weight.");
+    $tokens['referenced_product']['weight-raw'] = t("The numerical value of the referenced product's weight.");
+    $tokens['referenced_product']['weight'] = t("The referenced product's formatted weight.");
+    $tokens['referenced_product']['length_units'] = t("The unit of measurement for the referenced product's length, width, and height.");
+    $tokens['referenced_product']['length-raw'] = t("The numerical value of the referenced product's length.");
+    $tokens['referenced_product']['length'] = t("The referenced product's formatted length.");
+    $tokens['referenced_product']['width-raw'] = t("The numerical value of the referenced product's width.");
+    $tokens['referenced_product']['width'] = t("The referenced product's formatted width.");
+    $tokens['referenced_product']['height-raw'] = t("The numerical value of the referenced product's height.");
+    $tokens['referenced_product']['height'] = t("The referenced product's formatted height.");
+    return $tokens;
+  }
+
+}
+/**
+ * Implementation of hook_token_values().
+ */
+function uc_node_checkout_token_values($type, $object = NULL, $options = array()) {
+  if ($type == 'node' && uc_node_checkout_node_associated($object)) {
+    // Load up the corresponding product so we can use the default add to
+    // cart quantity.
+    $product = node_load($object->ucnc_product_nid);
+    $tokens = array();
+    $tokens['referenced-title'] = $product->title;
+    $tokens['model'] = $product->model;
+    $tokens['list_price'] = $product->list_price;
+    $tokens['cost'] = $product->cost;
+    $tokens['sell_price'] = $product->sell_price;
+    $tokens['weight_units'] = $product->weight_units;
+    $tokens['weight-raw'] = $product->weight;
+    $tokens['weight'] = uc_weight_format($product->weight, $product->weight_units);
+    $tokens['length_units'] = $product->length_units;
+    $tokens['length-raw'] = $product->length;
+    $tokens['length'] = uc_length_format($product->length, $product->length_units);
+    $tokens['width-raw'] = $product->width;
+    $tokens['width'] = uc_length_format($product->width, $product->length_units);
+    $tokens['height-raw'] = $product->height;
+    $tokens['height'] = uc_length_format($product->height, $product->length_units);
+    return $tokens;
+  }
+}
+
