diff --git a/devel_generate.inc b/devel_generate.inc
index 497635d..773ea02 100644
--- a/devel_generate.inc
+++ b/devel_generate.inc
@@ -457,8 +457,25 @@ function devel_generate_content_pre_node(&$results) {
  *   array of options obtained from devel_generate_content_form.
  */
 function devel_generate_content_add_node(&$results) {
+  static $incremental_type = 0;
+  // Determine if we need to create one of each type
+  $incremental_node_created = FALSE;
+  if ($results['one_of_each']['oneofeach']) {
+    if ($incremental_type >= count($results['node_types'])) {
+      // any further nodes will be random
+      $node->type = array_rand($results['node_types']);
+    } else {
+      $incremental_node_created = TRUE;
+      $types = array();
+      foreach ($results['node_types'] as $key) {
+        $types[] = $key;
+      }
+      $node->type = $types[$incremental_type++];
+    }
+  } else {
+    $node->type = array_rand($results['node_types']);
+  }
   // Insert new data:
-  $node->type = array_rand($results['node_types']);
   module_load_include('inc', 'node', 'node.pages');
   $type = node_get_types('type', $node->type);
   node_object_prepare($node);
@@ -481,7 +498,14 @@ function devel_generate_content_add_node(&$results) {
   $node->devel_generate = $results;
   // See devel_generate_nodeapi() for actions that happen before and after this save.
   node_save($node);
-
+  if ($incremental_node_created) {
+    if ($incremental_type == 1) {
+      drupal_set_message(t('Generated one node of each selected type.'));
+    }
+    // presumably, if the user wants one node of each type, he or she
+    // will want to inspect them after
+    drupal_set_message(t('Node of type @t create: !l', array('@t' => $node->type, '!l' => l('node/' . $node->nid, 'node/' . $node->nid))), 'message');
+  }
 }
 
 function devel_generate_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
diff --git a/devel_generate.module b/devel_generate.module
index 278eef0..e48a1ae 100644
--- a/devel_generate.module
+++ b/devel_generate.module
@@ -109,7 +109,12 @@ function devel_generate_content_form() {
     '#default_value' => 50,
     '#size' => 10,
   );
-  
+  $form['one_of_each'] = array(
+    '#type' => 'checkboxes',
+    '#title' => t('For the first @n nodes, create one node of each type', array('@n' => count($options))),
+    '#options' => array('oneofeach' => 'Create one node of each type'),
+    '#default_value' => array_keys($options),
+  );
   $options = array(1 => t('Now'));
   foreach (array(3600, 86400, 604800, 2592000, 31536000) as $interval) {
     $options[$interval] = format_interval($interval, 1) . ' ' . t('ago');
