diff --git a/facetapi.theme.inc b/facetapi.theme.inc
index 8eccab2..aa4b631 100644
--- a/facetapi.theme.inc
+++ b/facetapi.theme.inc
@@ -29,7 +29,7 @@ function theme_facetapi_facet_missing($variables) {
  * @ingroup themeable
  */
 function theme_facetapi_title($variables) {
-  return t('Filter by @title:', array('@title' => drupal_strtolower($variables['title'])));
+  return t(($variables['title']));
 }
 
 /**
diff --git a/plugins/facetapi/widget.inc b/plugins/facetapi/widget.inc
index c84b2fa..8a0b635 100644
--- a/plugins/facetapi/widget.inc
+++ b/plugins/facetapi/widget.inc
@@ -102,8 +102,8 @@ abstract class FacetapiWidget {
     $this->id = $id;
     $this->realm = $realm;
     $this->settings = $settings;
-    $this->settings->settings += $this->getDefaultSettings();
     $this->facet = $facet;
+    $this->settings->settings += $this->getDefaultSettings();
 
     // Set the default key as the facet's alias.
     $this->key = $facet['field alias'];
@@ -112,7 +112,7 @@ abstract class FacetapiWidget {
   /**
    * Initializes the build, must be invoked prior to executing this widget.
    *
-   * This method is called automatically by FacetapiFacet::build() and shoud
+   * This method is called automatically by FacetapiFacet::build() and should
    * rarely be invoked outside of that context. It is responsible for getting
    * the base render array stored in the FacetapiFacet object and appending it
    * to the container that will be returned, sorting the facets, and adding some
@@ -128,7 +128,7 @@ abstract class FacetapiWidget {
 
     // Initialize the render array.
     $this->build = array(
-      '#title' => $this->facet['label'],
+      '#title' => isset($this->settings->settings['title']) ? $this->settings->settings['title'] : $this->facet['label'],
       '#description' => $this->facet['description'],
       '#weight' => $this->facet['weight'],
       '#adapter' => $this->facet->getAdapter(),
diff --git a/plugins/facetapi/widget_links.inc b/plugins/facetapi/widget_links.inc
index fa4862c..1b6b97a 100644
--- a/plugins/facetapi/widget_links.inc
+++ b/plugins/facetapi/widget_links.inc
@@ -159,6 +159,17 @@ class FacetapiWidgetLinks extends FacetapiWidget {
    * Overrides FacetapiWidget::settingsForm().
    */
   function settingsForm(&$form, &$form_state) {
+    $form['widget']['widget_settings']['links'][$this->id]['title'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Title'),
+      '#default_value' => $this->settings->settings['title'],
+      '#states' => array(
+        'visible' => array(
+          'select[name="widget"]' => array('value' => $this->id),
+        ),
+      ),
+    );
+
     // @see http://drupal.org/node/735528 for supporting multiple values in the
     // FAPI #states. The following hack adds multiple form elements and uses CSS
     // and JavaScript to ensure only one is displayed at a time. Only the last
@@ -220,6 +231,7 @@ class FacetapiWidgetLinks extends FacetapiWidget {
    */
   function getDefaultSettings() {
     return array(
+      'title' => t('Filter by ') . $this->facet['label'] . ':',
       'soft_limit' => 20,
       'nofollow' => 1,
       'show_expanded' => 0,
