--- link.module.orig	2007-02-12 16:14:12.000000000 +0100
+++ link.module	2007-02-12 16:11:46.000000000 +0100
@@ -60,6 +60,17 @@
         '#description' => t('The <a href="http://en.wikipedia.org/wiki/Nofollow#rel.3Dnofollow">rel=&quot;nofollow&quot; attribute</a> prevents some search engines from spidering entered links.'),
         '#default_value' => isset($field['attributes']['rel']) ? $field['attributes']['rel'] : false,
       );
+
+      $form['attributes']['unique'] = array(
+        '#type' => 'checkbox',
+        '#return_value' => true,
+        '#prefix' => '<div class="form-item"><label>Unique Value: </label>',
+        '#suffix' => '</div>',
+        '#title' => t('Unique URL'),
+        '#description' => t('Allow only one URL at the same time for this field.'),
+        '#default_value' => isset($field['attributes']['unique']) ? $field['attributes']['unique'] : false,
+      );
+
       return $form;
 
     case 'save':
@@ -155,6 +166,10 @@
           if (link_validate_url(trim($value['url'])) == FALSE) {
             form_set_error($field['field_name'] .']['. $delta. '][value][url', t('Not a valid URL.'));
           }
+          elseif (($field['attributes']['unique']) && (link_url_exists($field, $node, trim($value['url']))))
+          {
+            form_set_error($field['field_name'] .']['. $delta. '][value][url', t('URL already exists.'));
+          }
           // Require a title for the link if necessary
           elseif ($field['title'] == 'required' && strlen(trim($value['title'])) == 0) {
             form_set_error($field['field_name'] .']['. $delta. '][value][title', t('Titles are required for all links.'));
@@ -302,6 +317,30 @@
   return $url;
 }
 
+function link_url_exists($field, $node, $text)
+{
+    $rc = false;
+
+    $table      = $field['type_name'];
+    $field_name = $field['field_name']."_url";
+
+    if ((is_object($node)) && ($node->nid>0))
+        $result = db_query("SELECT COUNT(*) AS count FROM {content_type}_".$table." WHERE nid!=%d AND $field_name LIKE '%s'", $node->nid, $text);
+    else
+        $result = db_query("SELECT COUNT(*) AS count FROM {content_type}_".$table." WHERE $field_name LIKE '%s'", $text);
+
+    if ($result !== false)
+    {
+       $row = db_fetch_object($result);
+       if ($row->count>0)
+        {
+            $rc = true;
+        } 
+    }
+
+    return $rc;
+}
+
 /**
  * A lenient verification for URLs. Accepts all URLs following RFC 1738 standard for URL formation.  
  *
