diff --git a/entity.module b/entity.module
index 08e4662..dc180db 100644
--- a/entity.module
+++ b/entity.module
@@ -1057,7 +1057,22 @@ function entity_ui_get_form($entity_type, $entity, $op = 'edit', $form_state = a
   $form_id = (!isset($bundle) || $bundle == $entity_type) ? $entity_type . '_form' : $entity_type . '_edit_' . $bundle . '_form';
 
   if (!isset($entity) && $op == 'add') {
-    $entity = entity_create($entity_type, array());
+    $info = entity_get_info($entity_type);
+    $values = array();
+    if (count($info['bundles']) > 1) {
+      if (isset($_GET['type'])) {
+        $values['type'] = $_GET['type'];
+      } else {
+        $options = array();
+        foreach($info['bundles'] as $key => $bundle_info){
+          $links[] = array('href' => $_GET['q'], 'title' => $bundle_info['label'], 'query' => array('type'=>$key));
+        }
+        return array(
+          '#markup' => theme('links', array('links'=> $links)),
+        );
+      }
+    }
+    $entity = entity_create($entity_type, $values);
   }
 
   // Do not use drupal_get_form(), but invoke drupal_build_form() ourself so
