diff --git a/commerce_webform.module b/commerce_webform.module
index 0d3e498..4967e88 100644
--- a/commerce_webform.module
+++ b/commerce_webform.module
@@ -274,7 +274,7 @@ function commerce_webform_get_products_from_webform_submission($submission) {
 
   foreach ($components as $component) {
     if ($component['component']['type'] == 'productfield') {
-      foreach ($component['value']['value'] as &$value) {
+      foreach ($component['value'] as &$value) {
         $value = json_decode($value);
         if (!empty($value->product_id) && $value->quantity > 0) {
           $product_ids[] = $value->product_id;
@@ -333,13 +333,13 @@ function commerce_webform_update_webform_submission_productfield($webform_submis
         if ($product_id_option == $product_id) {
           // Loop through the submission values looking for the product
           // which was just purchased.
-          foreach ($webform_submission->data[$key]['value'] as $value_key => $value) {
+          foreach ($webform_submission->data[$key] as $value_key => $value) {
             $value = json_decode($value);
             if ($value->product_id == $product_id) {
               $value->order_id = $order_id;
               $value->line_item_id = $line_item_id;
               $value->paid = $paid;
-              $webform_submission->data[$key]['value'][$value_key] = json_encode($value);
+              $webform_submission->data[$key][$value_key] = json_encode($value);
               // The following is the same as running
               // webform_submission_update() except that
               // it does not invoke the update hooks.
@@ -491,7 +491,18 @@ function commerce_webform_entity_view($order, $type, $view_mode, $langcode) {
       foreach ($submissions as $id => $submission) {
         $node = $submission['node'];
         $sub = $submission['submission'];
-        $order->content['commerce_webform_order_view'][$id]['#markup'] = l(t('View webform submission on webform %title', array('%title' => $node->title)), "node/{$node->nid}/submission/{$sub->sid}", array('html' => TRUE)) . webform_submission_render($node, $sub, NULL, 'html');
+        $orderviewref =& $order->content['commerce_webform_order_view'][$id];
+        $link = l(t('View submission on webform %title', array('%title' => $node->title)),
+          "node/{$node->nid}/submission/{$sub->sid}",
+          array('html' => TRUE));
+        $orderviewref['webform_link'] = array(
+          '#prefix' => '<label>',
+          '#markup' => t('Webform submission (!link):', array('!link' => $link)),
+          '#suffix' => '</label>',
+        );
+        $orderviewref['webform_rendered'] = webform_submission_render($node, $sub, NULL, 'html');
+        $orderviewref['webform_rendered']['#prefix'] = '<div style="border: 1px solid #ccc; padding: 1em; ">';
+        $orderviewref['webform_rendered']['#suffix'] = '</div>';
       }
     }
   }
