--- node_expire.nodeapi.inc (rev1232)
+++ node_expire.nodeapi.inc (rev1250)
@@ -49,13 +49,14 @@
 
     case 'update':
     case 'insert':
-      $update = array();
-      if (isset($node->node_expire)) {
-        $update[] = 'nid';
+      db_query('DELETE FROM {node_expire} WHERE nid = %d', $node->nid);
+      if (empty($node->expire)) {
+          // don't save an empty expiration date in the database
+          break;
       }
       $node->expire   = strtotime($node->expire);
       $node->expired  = FALSE;
-      drupal_write_record('node_expire', $node, $update);
+      db_query('INSERT {node_expire} (nid, expire, expired) VALUES(%d, %d, %d)', $node->nid, $node->expire, $node->expired);
       break;
 
     case 'delete':
