diff --git a/twitter.module b/twitter.module
index bd37a58..8a5181f 100644
--- a/twitter.module
+++ b/twitter.module
@@ -91,11 +91,11 @@ function twitter_form_alter(&$form, $form_state, $form_id) {
     $form['twitter']['post'] = array(
       '#type' => 'checkbox',
       '#title' => t('Announce this post on Twitter'),
-      '#default_value' => (empty($form['nid']['#value'])),
+      '#default_value' => $form['#node']->twitter['post'],
       '#id' => 'twitter-toggle',
     );
     $form['twitter'] += $twitter_form;
-    $form['twitter']['status']['#default_value'] = variable_get('twitter_default_format', 'New post: !title !tinyurl');
+    $form['twitter']['status']['#default_value'] = $form['#node']->twitter['status'] ;
     $form['twitter']['status']['#description'] = t('The given text will be posted to twitter.com. You can use !url, !url-alias, !tinyurl, !title and !user as replacement text.');
   }
 }
@@ -109,6 +109,12 @@ function twitter_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
   module_load_include('inc', 'twitter');
 
   switch ($op) {
+    case 'prepare':
+      if (!isset($node->twitter)) {
+        $node->twitter['post'] = empty($form['nid']['#value']);
+        $node->twitter['status'] = variable_get('twitter_default_format', 'New post: !title !tinyurl');
+      }
+    break;
     case 'insert':
     case 'update':
       if (!empty($node->status) && !empty($node->twitter) && !empty($node->twitter['post'])) {
