diff --git a/link.module b/link.module
index b5a42ab..4d24439 100644
--- a/link.module
+++ b/link.module
@@ -460,19 +460,21 @@ function _link_sanitize(&$item, $delta, &$field, $instance, &$entity) {
   $url = link_cleanup_url($item['url']);
   $url_parts = _link_parse_url($url);
 
-  // Get rid of '<front>' for proper paths.
+  // Not sure if this is necessary
   if ($type == LINK_FRONT) {
-    $url_parts['url'] = '';
+    $url_parts['url'] = '<front>';
   }
 
-  $item['url'] = url(check_plain($url_parts['url']),
-    array(
-      'query' => isset($url_parts['query']) ? $url_parts['query'] : NULL,
-      'fragment' => isset($url_parts['fragment']) ? $url_parts['fragment'] : NULL,
-      'absolute' => TRUE,
-      'html' => TRUE,
-    )
-  );
+  if (!empty($url_parts['url'])) {
+    $item['url'] = url(check_plain($url_parts['url']),
+      array(
+        'query' => isset($url_parts['query']) ? $url_parts['query'] : NULL,
+        'fragment' => isset($url_parts['fragment']) ? $url_parts['fragment'] : NULL,
+        'absolute' => TRUE,
+        'html' => TRUE,
+      )
+    );
+  }
 
   // Create a shortened URL for display.
   if ($type == LINK_EMAIL) {
