diff --git a/apachesolr.api.php b/apachesolr.api.php
index f0e9c96..d805420 100755
--- a/apachesolr.api.php
+++ b/apachesolr.api.php
@@ -109,7 +109,7 @@ function hook_apachesolr_field_mappings_alter(&$mappings, $entity_type) {
   // Enable indexing for text fields
   $mappings['text'] = array(
     'indexing_callback' => 'apachesolr_fields_default_indexing_callback',
-    'map callback' => '',
+    'map callback' => 'apachesolr_string_facet_map_callback',
     'index_type' => 'string',
     'facets' => TRUE,
     'facet missing allowed' => TRUE,
diff --git a/apachesolr.module b/apachesolr.module
index 324f10c..a4daa9a 100644
--- a/apachesolr.module
+++ b/apachesolr.module
@@ -2173,6 +2173,18 @@ function apachesolr_entityreference_facet_map_callback(array $values, array $opt
 }
 
 /**
+ * Mapping callback for string fields.
+ */
+function apachesolr_string_facet_map_callback(array $values, array $options) {
+  $map = array();
+  foreach ($values as $value) {
+    // Reverse the effects of apachesolr_clean_text().
+    $map[$value] = html_entity_decode($value, ENT_QUOTES, 'UTF-8');
+  }
+  return $map;
+}
+
+/**
  * Returns the callback function appropriate for a given entity type/bundle.
  *
  * @param string $entity_type
