diff --git a/settings_custom_url.inc b/settings_custom_url.inc
index 39ed0fe..48b1d64 100644
--- a/settings_custom_url.inc
+++ b/settings_custom_url.inc
@@ -126,6 +126,14 @@ function domain_url_outbound_alter(&$path, &$options, $original_path) {
         // TODO: merge this code with the above for cleanup.
       }
     }
+    if (module_exists('comment')) {
+      // Must use md5 here, to prevent array keys from breaking.
+      $name = md5($path);
+      if (!isset($path_lookup[$name])) {
+        $path_lookup[$name] = TRUE;
+        domain_comment_path($path, $options, $original_path);
+      }
+    }
   }
   // We may have to refactor this for D7.
   if (!isset($path_rewrite)) {
@@ -136,3 +144,26 @@ function domain_url_outbound_alter(&$path, &$options, $original_path) {
     domain_path($target_domain_id, $path, $options, $original_path);
   }
 }
+
+/**
+ * Support comment link rewriting.
+ */
+function domain_comment_path(&$path, &$options, $original_path) {
+  if (arg(0, $path) == 'comment') {
+    $_domain = domain_get_domain();
+    $cid = arg(1, $path);
+    // Comment replies use cid as the fourth item.
+    if ($cid == 'reply') {
+      $cid = arg(3, $path);
+    }
+    if (!empty($cid) && $comment = comment_load($cid)) {
+      $source = domain_get_node_match($comment->nid);
+      if ($source['domain_id'] == $_domain['domain_id']) {
+        return;
+      }
+      $options['absolute'] = TRUE;
+      // In this case, the $base_url cannot have a trailing slash
+      $options['base_url'] = rtrim($source['path'], '/');
+    }
+  }
+}
