Index: modules/poll/poll.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/poll/poll.module,v
retrieving revision 1.352
diff -u -p -r1.352 poll.module
--- modules/poll/poll.module	24 Jun 2010 18:53:31 -0000	1.352
+++ modules/poll/poll.module	9 Jul 2010 19:16:57 -0000
@@ -294,6 +294,7 @@ function poll_form($node, &$form_state) 
 
   // Add initial or additional choices.
   $existing_delta = $delta;
+  $weight++;
   for ($delta; $delta < $choice_count; $delta++) {
     $key = 'new:' . ($delta - $existing_delta);
     $form['choice_wrapper']['choice'][$key] = _poll_choice_form($key, NULL, '', 0, $weight, $choice_count);
@@ -383,6 +384,7 @@ function poll_more_choices_submit($form,
 function _poll_choice_form($key, $chid = NULL, $value = '', $votes = 0, $weight = 0, $size = 10) {
   $form = array(
     '#tree' => TRUE,
+    '#weight' => $weight,
   );
 
   // We'll manually set the #parents property of these fields so that
@@ -433,8 +435,8 @@ function poll_choice_js($form, $form_sta
 /**
  * Renumber fields and create a teaser when a poll node is submitted.
  */
-function poll_node_form_submit(&$form, &$form_state) {
-  // Renumber fields
+function poll_node_form_submit($form, &$form_state) {
+  // Renumber fields.
   $form_state['values']['choice'] = array_values($form_state['values']['choice']);
   $form_state['values']['teaser'] = poll_teaser((object) $form_state['values']);
 }
@@ -821,14 +823,14 @@ function theme_poll_choices($variables) 
 
   drupal_add_tabledrag('poll-choice-table', 'order', 'sibling', 'poll-weight');
 
+  $is_admin= user_access('administer nodes');
   $delta = 0;
   $rows = array();
-  $headers = array(
-    '',
-    t('Choice'),
-    t('Vote count'),
-    t('Weight'),
-  );
+  $headers = array('', t('Choice'));
+  if ($is_admin) {
+    $headers[] = t('Vote count');
+  }
+  $headers[] = t('Weight');
 
   foreach (element_children($form) as $key) {
     $delta++;
@@ -840,11 +842,13 @@ function theme_poll_choices($variables) 
       'data' => array(
         array('class' => array('choice-flag')),
         drupal_render($form[$key]['chtext']),
-        drupal_render($form[$key]['chvotes']),
-        drupal_render($form[$key]['weight']),
       ),
       'class' => array('draggable'),
     );
+    if ($is_admin) {
+      $row['data'][] = drupal_render($form[$key]['chvotes']);
+    }
+    $row['data'][] = drupal_render($form[$key]['weight']);
 
     // Add any additional classes set on the row.
     if (!empty($form[$key]['#attributes']['class'])) {
Index: modules/poll/poll.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/poll/poll.test,v
retrieving revision 1.35
diff -u -p -r1.35 poll.test
--- modules/poll/poll.test	23 Jun 2010 19:15:07 -0000	1.35
+++ modules/poll/poll.test	9 Jul 2010 18:48:08 -0000
@@ -11,10 +11,15 @@ class PollTestCase extends DrupalWebTest
   /**
    * Creates a poll.
    *
-   * @param string $title The title of the poll.
-   * @param array $choices Choices.
-   * @param boolean $test_preview Whether to test if the preview is working or not.
-   * @return integer The nid of the created poll, or FALSE on error.
+   * @param string $title
+   *   The title of the poll.
+   * @param array $choices
+   *   A list of choice labels.
+   * @param boolean $test_preview
+   *   Whether to test if the preview is working or not.
+   *
+   * @return
+   *   The node id of the created poll, or FALSE on error.
    */
   function pollCreate($title, $choices, $test_preview = TRUE) {
     $this->assertTrue(TRUE, 'Create a poll');
@@ -28,8 +33,8 @@ class PollTestCase extends DrupalWebTest
     // Prepare a form with two choices
     list($edit, $index) = $this->_pollGenerateEdit($title, $choices);
 
+    // Re-submit the form until all choices are filled in.
     if (count($choices) > 2) {
-      // Re-submit the form while the choices are all in
       while ($index < count($choices)) {
         $this->drupalPost(NULL, $edit, t('More choices'));
         list($edit, $index) = $this->_pollGenerateEdit($title, $choices, $index);
@@ -57,9 +62,8 @@ class PollTestCase extends DrupalWebTest
     $already_submitted_choices = array_slice($choices, 0, $index);
     $new_choices = array_values(array_slice($choices, $index, $max_new_choices));
 
-    $langcode = LANGUAGE_NONE;
     $edit = array(
-      "title" => $title
+      'title' => $title,
     );
     foreach ($already_submitted_choices as $k => $text) {
       $edit['choice[chid:' . $k . '][chtext]'] = $text;
@@ -332,7 +336,6 @@ class PollJSAddChoice extends DrupalWebT
     $web_user = $this->drupalCreateUser(array('create poll content', 'access content'));
     $this->drupalLogin($web_user);
     $this->drupalGet('node/add/poll');
-    $langcode = LANGUAGE_NONE;
     $edit = array(
       "title" => $this->randomName(),
       'choice[new:0][chtext]' => $this->randomName(),
