diff --git a/modules/callbacks.inc b/modules/callbacks.inc
index 4c3f634..fe010b1 100644
--- a/modules/callbacks.inc
+++ b/modules/callbacks.inc
@@ -115,6 +115,16 @@ function entity_metadata_node_get_properties($node, array $options, $name, $enti
 }
 
 /**
+ * Callback for getting node comments.
+ */
+function entity_metadata_node_get_comments($node, array $options, $name, $entity_type) {
+  $select = db_select('comment', 'c');
+  $select->fields('c', array('cid'))
+    ->condition('c.nid', $node->nid);
+  return array_keys($select->execute()->fetchAllKeyed(0, 0));
+}
+
+/**
  * Callback for determing access for node revision related properties.
  */
 function entity_metadata_node_revision_access($op, $name, $entity = NULL, $account = NULL) {
diff --git a/modules/node.info.inc b/modules/node.info.inc
index d3cde6a..2724b6b 100644
--- a/modules/node.info.inc
+++ b/modules/node.info.inc
@@ -33,6 +33,12 @@ function entity_metadata_node_entity_property_info() {
     'description' => t("Whether the node is new and not saved to the database yet."),
     'getter callback' => 'entity_metadata_node_get_properties',
   );
+  $properties['comments'] = array(
+    'label' => t("Comments"),
+    'type' => 'list<comment>',
+    'description' => t("The node comments."),
+    'getter callback' => 'entity_metadata_node_get_comments',
+  );
   $properties['type'] = array(
     'label' => t("Content type"),
     'type' => 'token',
