diff --git a/includes/fivestar.field.inc b/includes/fivestar.field.inc
index 53cda56..6ac1435 100644
--- a/includes/fivestar.field.inc
+++ b/includes/fivestar.field.inc
@@ -716,6 +716,7 @@ function fivestar_property_info_callback(&$info, $entity_type, $field, $instance
   $name = $field['field_name'];
   $property = &$info[$entity_type]['bundles'][$instance['bundle']]['properties'][$name];
 
+  $property['getter callback'] = '_fivestar_field_property_values';
   $property['property info'] = array(
     'average_rating' => array(
       'label' => t('Average Rating'),
@@ -731,6 +732,31 @@ function fivestar_property_info_callback(&$info, $entity_type, $field, $instance
 }
 
 /**
+ * Callback for getting field property values.
+ */
+function _fivestar_field_property_values($entity, array $options, $name, $entity_type, $info) {
+  $field = field_info_field($name);
+  $langcode = field_language($entity_type, $entity, $name, isset($options['language']) ? $options['language']->language : NULL);
+  $values = array();
+  if (isset($entity->{$name}[$langcode])) {
+    foreach ($entity->{$name}[$langcode] as $delta => $data) {
+      $values[$delta]['user_rating'] = $data['rating'];
+      $result = array();
+      $result = votingapi_select_results(array(
+        'entity_type' => $entity_type,
+        'entity_id' => $entity->nid,
+        'value_type' => 'percent',
+        'tag' => $field['settings']['axis'],
+        'function' => 'average',
+      ));
+      $values[$delta]['average_rating'] = (isset($result[0]['value']) ? $result[0]['value'] : 0);
+    }
+  }
+  // For an empty single-valued field, we have to return NULL.
+  return $field['cardinality'] == 1 ? ($values ? reset($values) : NULL) : $values;
+}
+
+/**
  * Get microdata attributes for Fivestar field.
  */
 function _fivestar_get_microdata_property_info($entity_type, $entity, $field, $instance) {
