Index: cck_select_other.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/cck_select_other/cck_select_other.module,v
retrieving revision 1.1.2.15
diff -u -p -r1.1.2.15 cck_select_other.module
--- cck_select_other.module	12 Jul 2010 19:26:27 -0000	1.1.2.15
+++ cck_select_other.module	31 Aug 2010 19:35:39 -0000
@@ -137,7 +137,10 @@ function cck_select_other_process($eleme
   $element['#collapsible'] = TRUE;
   $element['#collapsed'] = FALSE;
 
-  if ($edit['select_other_list'] == 'other' && !empty($edit['select_other_text_input']) && !empty($edit)) {
+  if ($edit['select_other_list'] == 'other' && !empty($edit)) {
+    if (empty($edit['select_other_text_input'])) {
+      $edit['select_other_text_input'] = $field['widget']['default_value'][0]['value'];
+    }
     $element['#value'] = array(array('value' => $edit['select_other_text_input']));
     $form_state['values'][$field_name] = $element['#value'][$delta];
     $form_state['clicked_button']['#post'][$field_name] = $element['#value'][$delta];
Index: tests/cck_select_other.test
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/cck_select_other/tests/Attic/cck_select_other.test,v
retrieving revision 1.1.2.6
diff -u -p -r1.1.2.6 cck_select_other.test
--- tests/cck_select_other.test	12 Jul 2010 19:26:27 -0000	1.1.2.6
+++ tests/cck_select_other.test	31 Aug 2010 19:35:39 -0000
@@ -49,6 +49,11 @@ class CCKSelectOtherTest extends DrupalW
     'widget' => array(
       'select_list_options' => '',
       'select_list_options_php' => '',
+      'default_value' => array(
+        array(
+          'value' => 'default',
+        ),
+      ),
       'default_value_php' => NULL,
       'label' => 'Blah',
       'weight' => NULL,
@@ -194,6 +199,24 @@ class CCKSelectOtherTest extends DrupalW
   }
 
   /**
+   * Test default value of the field
+   */
+   function testDefaultValue() {
+     $node = $this->test_node;
+     $edit = array(
+       'title' => $node->title,
+       'body' => $node->body,
+       'field_blah[select_other_list]' => 'other',
+       'field_blah[select_other_text_input]' => '',
+     );
+
+     // save a null/empty value in the text input field
+     $this->drupalPost('node/' . $node->nid . '/edit', $edit, t('Save'));
+     $node = node_load($node->nid, NULL, TRUE);
+     $this->assertEqual($this->test_field['widget']['default_value'][0]['value'], $node->field_blah[0]['value'], t('Default value %value is equal to %saved.', array('%value' => $this->test_field['widget']['default_value'][0]['value'], '%saved' => $node->field_blah[0]['value'])));
+   }
+
+  /**
    * Fail validation or test allowed values for other option
    */
   function testAllowedValues() {
