--- webform.module.orig	2011-05-18 23:07:35.000000000 +0200
+++ webform.module	2011-06-09 07:20:46.783379006 +0200
@@ -378,7 +378,7 @@ function webform_menu_component_load($ci
   module_load_include('inc', 'webform', 'includes/webform.components');
   if ($cid == 'new') {
     $components = webform_components();
-    $component = in_array($type, array_keys($components)) ? array('type' => $type, 'nid' => $nid, 'name' => $_GET['name'], 'mandatory' => $_GET['mandatory'], 'pid' => $_GET['pid'], 'weight' => $_GET['weight']) : FALSE;
+    $component = in_array($type, array_keys($components)) ? array('type' => $type, 'nid' => $nid, 'name' => $_GET['name'], 'mandatory' => $_GET['mandatory'], 'private' => $_GET['private'], 'pid' => $_GET['pid'], 'weight' => $_GET['weight']) : FALSE;
   }
   else {
     $node = node_load($nid);
@@ -1824,6 +1824,12 @@ function _webform_client_form_rule_check
     if ($component['extra']['conditional_operator'] == '!=') {
       $show_component = !$show_component;
     }
+    
+  }
+
+  // private component?
+  if ($component['extra']['private']) {
+    $show_component = webform_results_access($node);
   }
 
   return $show_component;
