diff -urpN drupal-7.x-dev copy/modules/node/content_types.inc drupal-7.x-dev/modules/node/content_types.inc
--- drupal-7.x-dev copy/modules/node/content_types.inc	2008-05-13 13:37:58.000000000 -0400
+++ drupal-7.x-dev/modules/node/content_types.inc	2008-06-04 13:28:54.000000000 -0400
@@ -49,6 +49,7 @@ function node_overview_types() {
  * Generates the node type editing form.
  */
 function node_type_form(&$form_state, $type = NULL) {
+  drupal_add_js(drupal_get_path('module', 'node') .'/node.admin.js');
   if (!isset($type->type)) {
     $type = new stdClass();
     $type->type = $type->name = $type->module = $type->description = $type->help = '';
diff -urpN drupal-7.x-dev copy/modules/node/node.admin.js drupal-7.x-dev/modules/node/node.admin.js
--- drupal-7.x-dev copy/modules/node/node.admin.js	1969-12-31 19:00:00.000000000 -0500
+++ drupal-7.x-dev/modules/node/node.admin.js	2008-06-04 14:12:09.000000000 -0400
@@ -0,0 +1,8 @@
+Drupal.behaviors.nodeFieldCopy = function(context) { 
+  $('#edit-name:not(.nodeFieldCopy-processed)').blur(function() { 
+    if ($('#edit-type').val()=='') {
+      var cleanName = $(this).val().toLowerCase().replace(/[^a-z0-9]/g, '_').replace(/_+/g,'_').replace(/_+$/g,'');
+      $('#edit-type').val(cleanName);
+    }
+  }).addClass('nodeFieldCopy-processed');
+};
\ No newline at end of file
