diff --git i/disqus.api.php w/disqus.api.php
index 2004d35..926bbec 100644
--- i/disqus.api.php
+++ w/disqus.api.php
@@ -29,5 +29,18 @@ function hook_disqus_user_data_alter(&$data) {
 }
 
 /**
+ * Modify the Disqus identifier.
+ *
+ * @param array $data
+ *  - identifier: The disqus identifier.
+ *  - context: The object and type.
+ */
+function hook_disqus_identifier_alter(&$identifier, $context) {
+  if ($context['type'] == 'node') {
+    $identifier = 'drupal/' . $context['object']->id;
+  }
+}
+
+/**
  * @} End of "addtogroup hooks".
  */
diff --git i/disqus.module w/disqus.module
index 9184820..3e075d6 100644
--- i/disqus.module
+++ w/disqus.module
@@ -227,8 +227,14 @@ function disqus_node_load($nodes, $types) {
         // Build the title.
         $node->disqus['title'] = check_plain(strip_tags($node->title));
 
+        $identifier = 'node/' . $node->nid;
+        $context = array(
+          'object' => $node,
+          'type' => 'node'
+        );
+        drupal_alter('disqus_identifier', $identifier, $context);
         // Provide the identifier.
-        $node->disqus['identifier'] = 'node/' . $node->nid;
+        $node->disqus['identifier'] = $identifier;
 
         // The developer flag must always be set when the node is unpublished.
         if ($node->status == 0) {
@@ -283,7 +289,7 @@ function disqus_node_view($node, $view_mode) {
           'attributes' => array(
             // Identify the node for Disqus with the unique identifier:
             // http://docs.disqus.com/developers/universal/#comment-count
-            'data-disqus-identifier' => 'node/' . $node->nid,
+            'data-disqus-identifier' => $node->disqus['identifier'],
           ),
         );
         $node->content['links']['disqus'] = array(
@@ -419,8 +425,14 @@ function disqus_user_load($users) {
         // Build the title.
         $account->disqus['title'] = check_plain(strip_tags($account->name));
 
+        $identifier = 'user/' . $node->nid;
+        $context = array(
+          'object' => $account,
+          'type' => 'user'
+        );
+        drupal_alter('disqus_identifier', $identifier, $context);
         // Provide the identifier.
-        $account->disqus['identifier'] = 'user/' . $account->uid;
+        $account->disqus['identifier'] = $identifier;
 
         // Inject the script.
         if ($developer = variable_get('disqus_developer', FALSE)) {
diff --git i/disqus_ds/disqus_ds.module w/disqus_ds/disqus_ds.module
index b30d139..0f4e513 100644
--- i/disqus_ds/disqus_ds.module
+++ w/disqus_ds/disqus_ds.module
@@ -6,7 +6,7 @@
  */
 
 /**
- *  Implementation of hook_ds_fields_info().
+ *  Implements hook_ds_fields_info().
  */
 function disqus_ds_ds_fields_info($entity_type) {
   $fields = array();
@@ -70,9 +70,9 @@ function _disqus_ds_comment_count(array &$field) {
       '#path' => 'node/' . $entity->nid,
       '#options' => array(
         'attributes' => array(
-          'data-disqus-identifier' => 'node/' . $entity->nid,
-          'fragment' => 'disqus_thread',
+          'data-disqus-identifier' => $entity->disqus['identifier'],
         ),
+        'fragment' => 'disqus_thread',
         'html' => false,
       ),
       '#attached' => array(
