Index: field_collection/field_collection.module
===================================================================
--- field_collection/field_collection.module	(revision 219)
+++ field_collection/field_collection.module	(working copy)
@@ -49,6 +49,8 @@
   // use field_read_fields() as field_info_fields() requires built entity info
   // to work.
   foreach (field_read_fields(array('type' => 'field_collection')) as $field_name => $field) {
+    $path = field_collection_field_get_path($field);
+    $count = count(explode('/', $path));
     $return['field_collection_item']['bundles'][$field_name] = array(
       'label' => t('Field collection @field', array('@field' => $field_name)),
       'admin' => array(
@@ -57,6 +59,12 @@
         'bundle argument' => 3,
         'access arguments' => array('administer field collections'),
       ),
+      'crud' => array(
+        'add' => array('path' => $path . '/add'),
+        'view' => array('path' => $path . '/%', 'entity_id' => $count),
+        'edit' => array('path' => $path . '/%/edit', 'entity_id' => $count),
+        'delete' => array('path' => $path . '/%/delete', 'entity_id' => $count)
+      ),
     );
   }
 
Index: field_collection/field_collection.info
===================================================================
--- field_collection/field_collection.info	(revision 219)
+++ field_collection/field_collection.info	(working copy)
@@ -5,6 +5,7 @@
 files[] = field_collection.test
 files[] = field_collection.info.inc
 files[] = views/field_collection_handler_relationship.inc
+files[] = views/field_collection_handler_field_url.inc
 configure = admin/structure/field-collections
 package = Fields
 
Index: field_collection/views/field_collection_handler_field_url.inc
===================================================================
--- field_collection/views/field_collection_handler_field_url.inc	(revision 0)
+++ field_collection/views/field_collection_handler_field_url.inc	(revision 383)
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Field handler to display the host_entity_path
+ */
+class field_collection_handler_field_url extends views_handler_field_url {
+  function query() {
+    // No query fields necessary.
+  }
+	
+ /**
+   * Work out the host_entity_id
+   */
+   
+  function get_value($values) {
+    static $field_collection_entity_info, $bundles;
+    if (empty($field_collection_entity_info)) {
+      $field_collection_entity_info = field_collection_entity_info();
+      $bundles =
+        $field_collection_entity_info['field_collection_item']['bundles'];
+    }
+		$item_id = $values->item_id;
+		$field_collection_item = field_collection_item_load($item_id);
+    $field_info = $bundles[$field_collection_item->field_name];
+    $url_type = $this->definition['type'];
+    if (empty($field_info['crud'][$url_type]['path'])) {
+      return;
+    }
+    $path = $field_info['crud'][$url_type]['path'];
+    if (!empty($field_info['crud'][$url_type]['entity_id'])) {
+      $position = $field_info['crud'][$url_type]['entity_id'];
+      $parts = explode('/', $path);
+      $parts[$position] = $item_id;
+      $path = implode('/', $parts);
+    }
+
+    if ($url_type == 'add') {
+      // @todo: "Add" is special - include the parent stuff if we have it. 
+    }
+    return $path;
+  }
+}
+
Index: field_collection/views/field_collection.views.inc
===================================================================
--- field_collection/views/field_collection.views.inc	(revision 219)
+++ field_collection/views/field_collection.views.inc	(working copy)
@@ -49,5 +49,17 @@
     );
   }
 
+  foreach (array('add', 'view', 'edit', 'delete') as $op) {
+    $data['field_collection_item'][$op . '_url'] = array(
+      'group' => t('Field collection item'),
+      'title' => t('URL: ' . ucfirst($op)),
+      'help' => t('The ' . $op . ' URL of the field collection.'),
+      'field' => array(
+        'handler' => 'field_collection_handler_field_url',
+        'type' => $op,
+      ),
+    );
+  }
+
   return $data;
 }
