diff --git modules/callbacks.inc modules/callbacks.inc
index 037480b..65c1e9a 100644
--- modules/callbacks.inc
+++ modules/callbacks.inc
@@ -348,7 +348,7 @@ function entity_metadata_language_list() {
 /**
  * Callback for getting field property values.
  */
-function entity_metadata_field_property_get($entity, array $options, $name, $entity_type) {
+function entity_metadata_field_property_get($entity, array $options, $name, $entity_type, $info) {
   $field = field_info_field($name);
   $columns = array_keys($field['columns']);
   $langcode = field_language($entity_type, $entity, $name, isset($options['language']) ? $options['language']->language : NULL);
@@ -356,6 +356,10 @@ function entity_metadata_field_property_get($entity, array $options, $name, $ent
   if (isset($entity->{$name}[$langcode])) {
     foreach ($entity->{$name}[$langcode] as $delta => $data) {
       $values[$delta] = $data[$columns[0]];
+      if ($info['type'] == 'boolean') {
+        // Ensure that we have a clean boolean data type.
+        $values[$delta] = (boolean) $values[$delta];
+      }
     }
   }
   // For an empty single-valued field, we have to return NULL.
