--- uc_product_power_tools.orig.module	2010-07-15 00:10:40.000000000 +0200
+++ uc_product_power_tools.module	2010-07-15 00:11:50.000000000 +0200
@@ -193,18 +193,30 @@ function uc_product_power_tools_form_alt
             $form['base']['dimensions'] = NULL;
             $form['shipping'] = NULL;
     }
-
-    $hide_product_info_fieldset = true;
-    foreach ($form['base'] as $key=>$element) {
-        if (!preg_match('/^\#/', $key) && !is_null($element) && isset($element['#type']) && $element['#type'] !== 'hidden') {
-            $hide_product_info_fieldset = false;
-            break;
-        }
-    }
-    if ($hide_product_info_fieldset) {
+    
+    if (!_uc_product_power_tools_does_form_show_fields($form['base'])) {
         $form['base']['#type'] = 'hidden';
     }
+}
 
+/**
+ * Helper function to check if the form fieldset should be hidden.
+ * Look for a form element that is not hidden.
+ * @return bool
+ */
+function _uc_product_power_tools_does_form_show_fields($form) {
+  $show = false;
+  //get only elements, no settings
+  $children = element_children($form);
+  foreach ($children as $key) {
+    $element = $form[$key];
+    if (isset($element['#type']) && $element['#type'] !== 'hidden') {
+      return true;
+    } elseif (is_array($element)) { //recursively search for form elements
+      $show = $show || _uc_product_power_tools_does_form_show_fields($element);
+    }
+  }
+  return $show;
 }
 
 /**
