diff -ruN twitter.orig/twitter_post/twitter_post.module twitter/twitter_post/twitter_post.module
--- twitter.orig/twitter_post/twitter_post.module	2011-10-12 13:36:39.000000000 +0200
+++ twitter/twitter_post/twitter_post.module	2011-10-12 23:08:13.000000000 +0200
@@ -62,44 +62,47 @@
 }
 
 /**
- * Implementation of hook_nodeapi().
+ * Implementation of hook_node_insert().
  *
  * Intercepts newly published nodes and posts noticed to Twitter.
  */
-function twitter_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
-  switch ($op) {
-    case 'insert':
-    case 'update':
-      if (!empty($node->status) && !empty($node->twitter) && !empty($node->twitter['post'])) {
-        module_load_include('inc', 'twitter');
-
-        $twitter_account = twitter_account_load($node->twitter['account']);
-        $replacements = array(
-          '!title' => $node->title,
-          '!url' => url('node/' . $node->nid, array('absolute' => TRUE, 'alias' => TRUE)),
-          '!url-alias' => url('node/' . $node->nid, array('absolute' => TRUE)),
-          '!user' => $node->name,
-        );
-        // Only generate the shortened URL if it's going to be used. No sense
-        // burning through TinyURLs without a good reason.
-        if (strstr($node->twitter['status'], '!tinyurl') !== FALSE) {
-          $replacements['!tinyurl'] = twitter_shorten_url(url('node/' . $node->nid, array('absolute' => TRUE)));
-        }
-
-        $status = strtr($node->twitter['status'], $replacements);
-        try {
-          $result = twitter_set_status($twitter_account, $status);
-          drupal_set_message(t('Successfully posted to Twitter'));
-        }
-        catch (TwitterException $e) {
-          drupal_set_message(t('An error occurred when posting to twitter: %code %error',
-                               array('%code' => $result->code, '%error' => $result->error)), 'warning');
-        }
-      }
-      break;
+function twitter_post_node_insert($node) {
+  if (!empty($node->status) && !empty($node->twitter) && !empty($node->twitter['post'])) {
+    module_load_include('inc', 'twitter');
+
+    $twitter_account = twitter_account_load($node->twitter['account']);
+    $replacements = array(
+      '!title' => $node->title,
+      '!url' => url('node/' . $node->nid, array('absolute' => TRUE, 'alias' => TRUE)),
+      '!url-alias' => url('node/' . $node->nid, array('absolute' => TRUE)),
+      '!user' => $node->name,
+    );
+
+    // Only generate the shortened URL if it's going to be used. No sense
+    // burning through TinyURLs without a good reason.
+    if (strstr($node->twitter['status'], '!tinyurl') !== FALSE) {
+      $replacements['!tinyurl'] = twitter_shorten_url(url('node/' . $node->nid, array('absolute' => TRUE)));
+    }
+
+    $status = strtr($node->twitter['status'], $replacements);
+    try {
+      $result = twitter_set_status($twitter_account, $status);
+      drupal_set_message(t('Successfully posted to Twitter'));
+    }
+    catch (TwitterException $e) {
+      drupal_set_message(t('An error occurred when posting to twitter: %code %error',
+                           array('%code' => $result->code, '%error' => $result->error)), 'warning');
+    }
   }
 }
 
+/**
+ * Implementation of hook_node_update().
+ */
+function twitter_post_node_update($node) {
+  twitter_post_node_insert($node);
+}
+
 
 /**
  * Generate a twitter posting form for the given user.
