diff --git a/exclude_node_title.module b/exclude_node_title.module
index 5279cee..5647641 100755
--- a/exclude_node_title.module
+++ b/exclude_node_title.module
@@ -10,7 +10,7 @@
 
 /**
  * Implements hook_permission().
- */ 
+ */
 function exclude_node_title_permission() {
   return array(
     'administer exclude node title' => array(
@@ -74,7 +74,7 @@ function exclude_node_title_preprocess_page(&$vars) {
 
 /**
  * Implements hook_node_view()
- */ 
+ */
 function exclude_node_title_node_view($node, $view_mode) {
   if (user_access('use exclude node title')) {
     if (_exclude_node_title($node, $view_mode)) {
@@ -138,7 +138,7 @@ function exclude_node_title_form_alter(&$form, &$form_state, $form_id) {
     if (!exclude_node_title_check_perm($form['#node'])) {
       return FALSE;
     }
-    
+
     // don't bother to add form element if the content type isn't configured
     // to be excluded by user...
     if (variable_get('exclude_node_title_content_type_value_' . $form['#node']->type) == 'user') {
@@ -195,6 +195,33 @@ function exclude_node_title_field_attach_delete_bundle($entity_type, $bundle, $i
 }
 
 /**
+ * Implements hook_ds_fields_info_alter()
+ */
+function exclude_node_title_ds_fields_info_alter(&$fields, $entity_type) {
+  if ($entity_type == 'node') {
+    $fields['title']['function'] = '_exclude_node_title_ds_render_field';
+    $fields['title']['properties']['settings']['exclude node title settings'] = array(
+      'type' => 'select',
+      'options' => array('No', 'Yes'),
+      'description' => t('Use the settings for the Exclude Node Title module for the title. Set to "off" to always show title.'),
+    );
+    $fields['title']['properties']['default']['exclude node title settings'] = 1;
+  }
+}
+
+/*
+ * Render the field obeying exclude node title settings
+ */
+function _exclude_node_title_ds_render_field($field) {
+  $settings = isset($field['formatter_settings']) ? $field['formatter_settings'] : array();
+  $settings += $field['properties']['default'];
+  if ($settings['exclude node title settings'] && _exclude_node_title($field['entity']->nid, $field['view_mode'])) {
+    $field['entity']->title = '';
+  }
+  return ds_render_field($field);
+}
+
+/**
  * Tells if node should get hidden or not.
  * @param $param
  *   Can be a node object or integer value (nid)
@@ -202,12 +229,12 @@ function exclude_node_title_field_attach_delete_bundle($entity_type, $bundle, $i
  *   Returns boolean TRUE if should be hidden, FALSE when not
  */
 function _exclude_node_title($param, $view_mode = 'full') {
-  
+
   // we accept only integer and object
   if (!is_object($param) && !is_numeric($param)) {
     return FALSE;
   }
-  
+
   // if numeric, load the node with nid
   if (is_numeric($param)) {
     $node = node_load(intval($param));
@@ -222,7 +249,7 @@ function _exclude_node_title($param, $view_mode = 'full') {
   $node_type = $node->type;
   $nid = isset($node->nid)?$node->nid:FALSE;
   unset($node); // memory cleanup
-  
+
   // get exclude settings
   static $exclude_settings;
   if (!isset($exclude_settings)) {
@@ -260,7 +287,7 @@ function _exclude_node_title($param, $view_mode = 'full') {
         }
       }
       return FALSE;
-      
+
     case 'none':
     default:
       return FALSE;
