diff --git a/webform_pay.module b/webform_pay.module
index a83ae34..ebe315f 100644
--- a/webform_pay.module
+++ b/webform_pay.module
@@ -251,10 +251,10 @@ function webform_pay_validate(&$form, &$form_state) {
     if ($enabled && isset($node->webform['components'][$cid])) {
       $price_component = $node->webform['components'][$cid];
       // Find the price value if on the current page.
-      $price_value = _webform_pay_component_value($node, $price_component, $form_state['values']['submitted']);
+      $price_value = _webform_pay_component_value($price_component, $form_state['values']['submitted']);
       // Find the price value from any previous pages.
       if ($price_value === FALSE && isset($form_state['storage']['submitted'])) {
-        $price_value = _webform_pay_component_value($node, $price_component, $form_state['storage']['submitted']);
+        $price_value = _webform_pay_component_value($price_component, $form_state['storage']['submitted']);
       }
       $price_parents = webform_component_parent_keys($node, $price_component);
       if (!empty($price_value) && !is_numeric($price_value)) {
@@ -272,10 +272,10 @@ function webform_pay_validate(&$form, &$form_state) {
     if (isset($node->webform['components'][$cid])) {
       $other_component = $node->webform['components'][$cid];
       // Find the component value from the current page.
-      $other_value = _webform_pay_component_value($node, $other_component, $form_state['values']['submitted']);
+      $other_value = _webform_pay_component_value($other_component, $form_state['values']['submitted']);
       // Find the component value from any previous pages.
       if ($other_value === FALSE && isset($form_state['storage']['submitted'])) {
-        $other_value = _webform_pay_component_value($node, $other_component, $form_state['storage']['submitted']);
+        $other_value = _webform_pay_component_value($other_component, $form_state['storage']['submitted']);
       }
       // TODO: Find a cleaner way of separating out billing information?
       if (in_array($key, array('street1', 'street2', 'city', 'state', 'zip', 'country', 'phone'))) {
@@ -318,16 +318,23 @@ function webform_pay_validate(&$form, &$form_state) {
   form_set_value($element, $form_state['values'][$pay_handler]['pay_method'][$pay_method->pmid], $form_state);
 }
 
-function _webform_pay_component_value($node, $component, $values) {
-  $parent_keys = webform_component_parent_keys($node, $component);
-  foreach ($parent_keys as $form_key) {
-    if (isset($values[$form_key])) {
-      $values = $values[$form_key];
-    }
-    else {
-      $values = FALSE;
-      break;
-    }
-  }
-  return $values;
+/**
+ * Helper function to return the value of a component if it exists.
+ *
+ * @param $component
+ *   The Webform component to check for.
+ * @param $values
+ *   An array of webform values keyed by component ID.
+ *
+ * @return
+ *   The submitted value of the component, or FALSE if the component was not
+ *   contained in $values.
+ */
+function _webform_pay_component_value($component, $values) {
+  $cid = $component['cid'];
+  if (isset($values[$cid])) {
+    return $values[$cid];
+   }
+
+  return FALSE;
 }
