diff --git modules/field_ui/field_ui.admin.inc modules/field_ui/field_ui.admin.inc
index 6ac8be9..6e7fee1 100644
--- modules/field_ui/field_ui.admin.inc
+++ modules/field_ui/field_ui.admin.inc
@@ -158,15 +158,14 @@ function field_ui_table_pre_render($elements) {
         // Add row id and associate JS settings.
         $id = drupal_html_class($name);
         $row['#attributes']['id'] = $id;
-        $row += array(
-          '#js_settings' => array(),
-        );
-        $row['#js_settings'] += array(
-          'rowHandler' => $row['#row_type'],
-          'name' => $name,
-          'region' => $region_name,
-        );
-        $js_settings[$id] = $row['#js_settings'];
+        if (isset($row['#js_settings'])) {
+          $row['#js_settings'] += array(
+            'rowHandler' => $row['#row_type'],
+            'name' => $name,
+            'region' => $region_name,
+          );
+          $js_settings[$id] = $row['#js_settings'];
+        }
       }
     }
   }
@@ -304,7 +303,7 @@ function field_ui_field_overview_form($form, &$form_state, $entity_type, $bundle
     ),
     '#parent_options' => array(),
     '#regions' => array(
-      'main' => array(),
+      'main' => array('message' => t('No fields are present yet.')),
       'add_new' => array('title' => '&nbsp;'),
     ),
     '#attributes' => array(
diff --git modules/field_ui/field_ui.css modules/field_ui/field_ui.css
index 3a61509..da5abc0 100644
--- modules/field_ui/field_ui.css
+++ modules/field_ui/field_ui.css
@@ -14,20 +14,20 @@ table.field-ui-overview tr.add-new .add-new-placeholder {
   font-weight: bold;
   padding-bottom: .5em;
 }
-table.field-ui-overview tr.region-add-new-title {
-  display: none;
-}
-
-/* 'Manage display' overview */
-#field-display-overview tr.region-title td {
+table.field-ui-overview tr.region-title td {
   font-weight: bold;
 }
-#field-display-overview tr.region-message td {
+table.field-ui-overview tr.region-message td {
   font-style: italic;
 }
-#field-display-overview tr.region-populated {
+table.field-ui-overview tr.region-populated {
   display: none;
 }
+table.field-ui-overview tr.region-add-new-title {
+  display: none;
+}
+
+/* 'Manage display' overview */
 #field-display-overview .field-formatter-summary-cell {
   line-height: 1em;
 }
diff --git modules/field_ui/field_ui.js modules/field_ui/field_ui.js
index 2aa7731..94ba92d 100644
--- modules/field_ui/field_ui.js
+++ modules/field_ui/field_ui.js
@@ -114,12 +114,14 @@ Drupal.fieldUIOverview = {
     $('tr.draggable', table).each(function () {
       // Extract server-side data for the row.
       var row = this;
-      var data = rowsData[row.id];
-      data.tableDrag = tableDrag;
+      if (row.id in rowsData) {
+        var data = rowsData[row.id];
+        data.tableDrag = tableDrag;
 
-      // Create the row handler, make it accessible from the DOM row element.
-      var rowHandler = eval('new rowHandlers.' + data.rowHandler + '(row, data);');
-      $(row).data('fieldUIRowHandler', rowHandler);
+        // Create the row handler, make it accessible from the DOM row element.
+        var rowHandler = eval('new rowHandlers.' + data.rowHandler + '(row, data);');
+        $(row).data('fieldUIRowHandler', rowHandler);
+      }
     });
   },
 
@@ -156,17 +158,18 @@ Drupal.fieldUIOverview = {
     var dragObject = this;
     var row = dragObject.rowObject.element;
     var rowHandler = $(row).data('fieldUIRowHandler');
-
-    var regionRow = $(row).prevAll('tr.region-message').get(0);
-    var region = regionRow.className.replace(/([^ ]+[ ]+)*region-([^ ]+)-message([ ]+[^ ]+)*/, '$2');
-
-    if (region != rowHandler.region) {
-      // Let the row handler deal with the region change.
-      refreshRows = rowHandler.regionChange(region);
-      // Update the row region.
-      rowHandler.region = region;
-      // AJAX-update the rows.
-      Drupal.fieldUIOverview.AJAXRefreshRows(refreshRows);
+    if (rowHandler !== undefined) {
+      var regionRow = $(row).prevAll('tr.region-message').get(0);
+      var region = regionRow.className.replace(/([^ ]+[ ]+)*region-([^ ]+)-message([ ]+[^ ]+)*/, '$2');
+
+      if (region != rowHandler.region) {
+        // Let the row handler deal with the region change.
+        refreshRows = rowHandler.regionChange(region);
+        // Update the row region.
+        rowHandler.region = region;
+        // AJAX-update the rows.
+        Drupal.fieldUIOverview.AJAXRefreshRows(refreshRows);
+      }
     }
   },
 
