diff --git a/fences.admin.inc b/fences.admin.inc
index 7bb0565..1124948 100644
--- a/fences.admin.inc
+++ b/fences.admin.inc
@@ -221,14 +221,24 @@ function _fences_form_field_ui_field_edit_form_alter(&$form, &$form_state) {
   $suggestion = fences_get_suggestion($form['#instance']['entity_type'], $form['#instance']['bundle'], $form['#instance']['field_name']);
 
   $form['instance']['fences_wrapper'] = array(
+    '#tree' => TRUE,
+  );
+
+  $form['instance']['fences_wrapper']['value'] = array(
     '#type' => 'select',
-    '#title' => t('Wrapper markup'),
-    '#default_value' => $suggestion ? $suggestion : 'div',
+    '#title' => t('Value wrapper markup'),
+    '#default_value' => $suggestion['value'] ? $suggestion['value'] : 'div',
     '#options' => fences_get_fences_options('field'),
     '#description' => t('Choose the HTML to use to wrap the field.'),
   );
 }
 
+  $form['instance']['fences_wrapper']['wrapper'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Render wrapper around label and values?'),
+    '#default_value' => $suggestion['wrapper'] ? $suggestion['wrapper'] : 0,
+  );
+
 /**
  * Implements hook_form_FORM_ID_alter().
  */
diff --git a/fences.module b/fences.module
index 88b1050..82664e1 100644
--- a/fences.module
+++ b/fences.module
@@ -73,6 +73,27 @@ function fences_theme_registry_alter(&$theme_registry) {
 }
 
 /**
+ * Implements of hook_field_attach_view_alter().
+ */
+function fences_field_attach_view_alter(&$output, $context) {
+  foreach (element_children($output) as $field_name) {
+    $field = &$output[$field_name];
+
+    // Retrieve the configured suggestion.
+    $suggestion = fences_get_suggestion($field['#entity_type'], $field['#bundle'], $field['#field_name']);
+
+    if (!empty($suggestion) && $suggestion['wrapper']) {
+      $field['#theme_wrappers'][] = 'container';
+      
+      $field['#attributes']['class'][] = 'field-wrapper';
+      $field['#attributes']['class'][] = 'field-' . strtr($field['#field_name'], '_', '-') . '-wrapper';
+      $field['#attributes']['class'][] = 'field-' . strtr($field['#field_type'], '_', '-') . '-wrapper';
+      $field['#attributes']['class'][] = 'field-label-' . $field['#label_display'] . '-wrapper';
+    }
+  }
+}
+
+/**
  * Implements hook_form_FORM_ID_alter().
  */
 function fences_form_field_ui_field_edit_form_alter(&$form, &$form_state) {
@@ -138,7 +159,10 @@ function fences_get_suggestion($entity_type, $bundle_name, $field_name) {
   if (!isset($fences[$entity_type][$bundle_name][$field_name])) {
     // Instance info is cached, so this isn't as non-performant as it looks.
     $settings = field_info_instance($entity_type, $field_name, $bundle_name);
-    $fences[$entity_type][$bundle_name][$field_name] = isset($settings['fences_wrapper']) ? $settings['fences_wrapper'] : '';
+    $fences[$entity_type][$bundle_name][$field_name] = array(
+      'value' => isset($settings['fences_wrapper']['value']) ? $settings['fences_wrapper']['value'] : '',
+      'wrapper' => isset($settings['fences_wrapper']['wrapper']) ? $settings['fences_wrapper']['wrapper'] : false,
+    );
   }
 
   return $fences[$entity_type][$bundle_name][$field_name];
@@ -170,13 +194,13 @@ function fences_preprocess_field(&$variables) {
   }
 
   // Optionally, override core's default markup.
-  if (empty($suggestion) && variable_get('fences_default_markup', 0)) {
-    $suggestion = 'div';
+  if (empty($suggestion['value']) && variable_get('fences_default_markup', 0)) {
+    $suggestion[value] = 'div';
   }
 
-  if ($suggestion) {
+  if ($suggestion['value']) {
     // Make fences' suggestions low priority by placing them at the front of the queue.
-    $suggestion = 'field__fences_' . $suggestion;
+    $suggestion = 'field__fences_' . $suggestion['value'];
     if (count($variables['items']) > 1) {
       // Add a "-multiple" suggestion if there are more than one field items.
       array_unshift($variables['theme_hook_suggestions'], $suggestion . '_multiple');
