diff --git a/link.migrate.inc b/link.migrate.inc
index e1f8ada..681d303 100644
--- a/link.migrate.inc
+++ b/link.migrate.inc
@@ -2,7 +2,27 @@
 
 /**
  * @file
- * Support for migrate module
+ * Support for migrate module.
+ *
+ * With Migrate 2.4 or later, you can use the subfield syntax to set the title
+ * and attributes:
+ *
+ * @code
+ * $this->addFieldMapping('field_my_link', 'source_url');
+ * $this->addFieldMapping('field_my_link:title', 'source_title');
+ * $this->addFieldMapping('field_my_link:attributes', 'source_attributes');
+ * @endcode
+ *
+ * With earlier versions of Migrate, you must pass an arguments array:
+ *
+ * @code
+ * $link_args = array(
+ *   'title' => array('source_field' => 'source_title'),
+ *   'attributes' => array('source_field' => 'source_attributes'),
+ * );
+ * $this->addFieldMapping('field_my_link', 'source_url')
+ *      ->arguments($link_args);
+ * @endcode
  */
 
 class MigrateLinkFieldHandler extends MigrateFieldHandler {
@@ -24,6 +44,19 @@ class MigrateLinkFieldHandler extends MigrateFieldHandler {
     return $arguments;
   }
 
+  /**
+   * Document the available subfields.
+   *
+   * @return array
+   */
+  public function fields() {
+    return array(
+      'title' => t('Link: Title'),
+      'attributes' => t('Link: Attributes'),
+      'language' => t('Link: Language'),
+    );
+  }
+
   public function prepare($entity, array $field_info, array $instance, array $values) {
     if (isset($values['arguments'])) {
       $arguments = $values['arguments'];
