Index: modules/node/content_types.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/content_types.inc,v
retrieving revision 1.50
diff -u -p -r1.50 content_types.inc
--- modules/node/content_types.inc	27 Jan 2008 18:03:05 -0000	1.50
+++ modules/node/content_types.inc	30 Jan 2008 01:19:15 -0000
@@ -46,7 +46,45 @@ function node_overview_types() {
 }
 
 /**
+ * Helper function to fix up the active trail by inserting a link to admin/content/types.
+ *
+ * The link is inserted prior to a $path, such as admin/content/node-type/$type_url, 
+ * if this exists in the active trail.
+ */
+function _node_type_fix_trail($path) {
+  $trail =  menu_get_active_trail();
+  // Find the offset - the position of admin/content/node-type/$type_url
+  $offset = 0;
+  while (($link = each($trail)) && ($link['value']['href'] != $path)) {
+    $offset++;
+  }
+  if ($offset < count($trail) && isset($trail[$offset - 1]) && $trail[$offset - 1]['href'] != 'admin/content/types') {
+    $item = menu_get_item('admin/content/types');
+    if ($item && $item['access']) {
+      // Insert the item in the trail just after the link with href == $path.
+      $end = array_splice($trail, $offset, count($trail), array($item));
+      $trail = array_merge($trail, $end);
+      menu_set_active_trail($trail);
+    }
+  }
+}
+
+/**
+ * Page callback for the node type editing form.
+ *
+ * Fixes up the active trail to make the breadcrumb more useful.
+ */
+function node_type_edit_page($form_id, $type, $path) {
+  _node_type_fix_trail($path);
+  return drupal_get_form($form_id, $type);
+}
+
+/**
  * Generates the node type editing form.
+ *
+ * @ingroup forms
+ * @see node_type_form_validate()
+ * @see node_type_form_submit()
  */
 function node_type_form(&$form_state, $type = NULL) {
   if (!isset($type->type)) {
@@ -215,6 +253,8 @@ function node_type_form(&$form_state, $t
 
 /**
  * Implementation of hook_form_validate().
+ *
+ * @see node_type_form()
  */
 function node_type_form_validate($form, &$form_state) {
   $type = new stdClass();
@@ -249,6 +289,8 @@ function node_type_form_validate($form, 
 
 /**
  * Implementation of hook_form_submit().
+ *
+ * @see node_type_form()
  */
 function node_type_form_submit($form, &$form_state) {
   $op = isset($form_state['values']['op']) ? $form_state['values']['op'] : '';
Index: modules/node/node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.module,v
retrieving revision 1.945
diff -u -p -r1.945 node.module
--- modules/node/node.module	29 Jan 2008 11:08:17 -0000	1.945
+++ modules/node/node.module	30 Jan 2008 01:19:15 -0000
@@ -1481,8 +1481,8 @@ function node_menu() {
     );
     $items['admin/content/node-type/'. $type_url_str] = array(
       'title' => $type->name,
-      'page callback' => 'drupal_get_form',
-      'page arguments' => array('node_type_form', $type),
+      'page callback' => 'node_type_edit_page',
+      'page arguments' => array('node_type_form', $type, 'admin/content/node-type/'. $type_url_str),
       'file' => 'content_types.inc',
       'type' => MENU_CALLBACK,
     );
@@ -1492,6 +1492,7 @@ function node_menu() {
     );
     $items['admin/content/node-type/'. $type_url_str .'/delete'] = array(
       'title' => 'Delete',
+      'page callback' => 'drupal_get_form',
       'page arguments' => array('node_type_delete_confirm', $type),
       'file' => 'content_types.inc',
       'type' => MENU_CALLBACK,
