diff --git a/modules/node/node.install b/modules/node/node.install
index 4632916..cc92a1c 100644
--- a/modules/node/node.install
+++ b/modules/node/node.install
@@ -449,5 +449,23 @@ function node_install() {
  * @ingroup update-api-7.x-to-8.x
  */
 function _update_8000_node_get_types() {
-  return db_query('SELECT * FROM {node_type}')->fetchAllAssoc('type', PDO::FETCH_OBJ);
+  $node_types = db_query('SELECT * FROM {node_type}')->fetchAllAssoc('type', PDO::FETCH_OBJ);
+
+  // Create default settings for orphaned nodes.
+  $all_types = db_query('SELECT DISTINCT type FROM {node}')->fetchCol();
+  $extra_types = array_diff($all_types, array_keys($node_types));
+
+  foreach ($extra_types as $type) {
+    $type_object = new stdClass;
+    $type_object->type = $type;
+    // A node type may be created with the body setting enabled, however even if
+    // that setting is enabled, individual nodes may be have been created with
+    // empty bodies. There is no way to detect the difference between these
+    // two states without access to the original node type settings, so assume
+    // the default, which is to enable the body field.
+    $type_object->has_body = 1;
+    $type_object->body_label = 'Body';
+    $node_types[$type_object->type] = $type_object;
+  }
+  return $node_types;
 }
