diff --git a/domain_meta.module b/domain_meta.module
--- a/domain_meta.module
+++ b/domain_meta.module
@@ -186,11 +186,19 @@ function domain_meta_node_update($node) {
   domain_meta_node_save($node);
 }
 
+/**
+ * Insert or update the row, as appropriate.
+ */
 function domain_meta_node_save($node) {
   if ($node->domain_meta_canonical_domain === -1) {
     $node->domain_meta_canonical_domain = 0;
   }
-  drupal_write_record('domain_meta', $node);
+  db_merge('domain_meta')
+   ->key(array('vid' => $node->vid))
+   ->fields(array(
+      'domain_meta_canonical_domain' => $node->domain_meta_canonical_domain,
+    ))
+    ->execute();
 }
 
 /**
