diff --git a/ds.module b/ds.module
index 7c35f73..6ecf9c9 100644
--- a/ds.module
+++ b/ds.module
@@ -645,6 +645,7 @@ function ds_field_attach_view_alter(&$build, $context) {
         $build[$key] = array(
           '#theme' => 'field',
           '#field_type' => 'ds',
+          '#skip_edit' => TRUE,
           '#title' => $field['title'],
           '#weight' => isset($field_values[$key]['weight']) ? $field_values[$key]['weight'] : 0,
           '#label_display' => isset($field_values[$key]['label']) ? $field_values[$key]['label'] : 'inline',
@@ -1017,6 +1018,8 @@ function ds_render_block_field($field) {
  */
 function ds_render_field($field) {
 
+  $title_field = FALSE;
+
   $output = '';
   $settings = isset($field['formatter_settings']) ? $field['formatter_settings'] : array();
   $settings += $field['properties']['default'];
@@ -1030,6 +1033,7 @@ function ds_render_field($field) {
       $output = format_username($field['entity']);
     }
     else {
+      $title_field = $field['properties']['entity_render_key'] == 'title' && $field['entity_type'] == 'node' &&
       $output = $field['entity']->{$field['properties']['entity_render_key']};
     }
   }
@@ -1048,9 +1052,15 @@ function ds_render_field($field) {
       $path = $uri_info['path'];
     }
     $output = l($output, $path);
+    if ($title_field) {
+      $output = ds_edit_support('title', $output, $field);
+    }
   }
   else {
     $output = check_plain($output);
+    if ($title_field) {
+      $output = ds_edit_support('title', $output, $field);
+    }
   }
 
   // Wrapper and class.
@@ -1064,22 +1074,37 @@ function ds_render_field($field) {
 }
 
 /**
+ * Support for edit module.
+ */
+function ds_edit_support($field_name, $output, $field) {
+  // Support for edit module.
+  if (module_exists('edit')) {
+    $edit_id = "node/" . $field['entity']->nid . "/" . $field_name . "/" . $field['entity']->language . "/" . $field['view_mode'];
+    $output = edit_wrap_pseudofield($output, $edit_id);
+  }
+
+  return $output;
+}
+
+/**
  * Render an author field.
  */
 function ds_render_author_field($field) {
 
   // Users without a user name are anonymous users. These are never linked.
   if (empty($field['entity']->name)) {
-    return check_plain(variable_get('anonymous', t('Anonymous')));
+    $output = check_plain(variable_get('anonymous', t('Anonymous')));
   }
 
   if ($field['formatter'] == 'author') {
-    return $field['entity']->name;
+    $output = $field['entity']->name;
   }
 
   if ($field['formatter'] == 'author_linked') {
-    return theme('username', array('account' => $field['entity']));
+    $output = theme('username', array('account' => $field['entity']));
   }
+
+  return ds_edit_support('author', $output, $field);
 }
 
 /**
@@ -1156,7 +1181,7 @@ function ds_render_user_picture($field) {
  */
 function ds_render_date_field($field) {
   $date_format = str_replace('ds_post_date_', '', $field['formatter']);
-  return format_date($field['entity']->created, $date_format);
+  return ds_edit_support('created', format_date($field['entity']->created, $date_format), $field);
 }
 
 /**
