diff --git a/src/plugins/webreport/NarrativeWeb.py b/src/plugins/webreport/NarrativeWeb.py
index 48d683e5d..95eda998e 100644
--- a/src/plugins/webreport/NarrativeWeb.py
+++ b/src/plugins/webreport/NarrativeWeb.py
@@ -785,13 +785,9 @@ class BasePage(object):
                 # Add the citation information to the bibliography, and construct
                 # the citation reference text
                 index, key = self.bibli.add_reference(citation)
-                id_ = "%d%s" % (index+1, key)
+                id_ = "%d%s" % (index+1,key)
 
-                source = self.dbase_.get_source_from_handle(source_handle)
-                if source:
-
-                    hyper = self.source_link(source, uplink = self.up)
-                    text += ' [%s]' % (hyper, id_)
+                text += ' %s' % (id_, id_)
         return text
 
     def get_note_format(self, note, link_prefix_up):
@@ -1222,34 +1218,28 @@ class BasePage(object):
                     tbody += trow
         return section
 
-    def source_link(self, source, cindex = None, uplink = False):
+    def source_link(self, source_handle, source_title, source_gid, cindex = None, uplink = False):
         """
         creates a link to the source object
 
         @param: source -- source object from database
+        @param: source_title -- title from the source object
+        @param: source_gid -- gramps id from the source object
         @param: cindex - count index
         @param: up - rather to add back directories or not?
         """
-
-        url = self.report.build_url_fname_html(source.get_handle(), "src", uplink)
-        gid = source.get_gramps_id()
-        title = html_escape(source.get_title())
-
-        # begin hyperlink
-        hyper = Html("a", title, 
-                     href =url, 
-                     title =_("Source Reference: %s") % title, 
-                     inline =True)
+        url = self.report.build_url_fname_html(source_handle, "src", uplink)
+        hyper = Html("a", source_title, 
+                     href = url, 
+                     title = source_title)
 
         # if not None, add name reference to hyperlink element
         if cindex:
             hyper.attr += ' name ="sref%d"' % cindex
 
         # add GRAMPS ID
-        if not self.noid and gid:
-            hyper += Html("span", ' [%s]' % gid, class_ = "grampsid", inline = True)
-
-        # return hyperlink to its callers
+        if not self.noid and source_gid:
+            hyper += Html("span", ' [%s]' % source_gid, class_ = "grampsid", inline = True)
         return hyper
 
     def display_addr_list(self, addrlist, showsrc):
@@ -2284,7 +2274,8 @@ class BasePage(object):
                 # Add this source and its references to the page
                 source = self.dbase_.get_source_from_handle(shandle)
                 if source is not None:
-                    list = Html("li", self.source_link(source, cindex, uplink = True))
+                    list = Html("li", self.source_link(source.get_handle(), source.get_title(),
+                        source.get_gramps_id(), cindex, uplink = self.up))
                 else:
                     list = Html("li", "None")
 
@@ -4412,14 +4403,15 @@ class SourceListPage(BasePage):
                 table += tbody
 
                 for index, key in enumerate(keys):
-                    source, handle = source_dict[key]
+                    source, source_handle = source_dict[key]
 
                     trow = Html("tr") + (
                         Html("td", index + 1, class_ ="ColumnRowLabel", inline =True)
                     )
                     tbody += trow
                     trow.extend(
-                        Html("td", self.source_link(source, None), class_ ="ColumnName")
+                        Html("td", self.source_link(source_handle, source.get_title(), 
+                            source.get_gramps_id()), class_ = "ColumnName")
                     )
 
         # add clearline for proper styling
@@ -4739,7 +4731,9 @@ class SourcePage(BasePage):
                                         source = self.dbase_.get_source_from_handle(source_handle)
                                         if source:
                                             unordered3.extend(
-                                                Html("li", self.source_link(source, uplink = self.up), inline = True)
+                                                Html("li", self.source_link(source_handle, 
+                                                    source.get_title(), source.get_gramps_id(),
+                                                        uplink = self.up), inline = True)
                                             )
 
                                     list2 += unordered3
@@ -6646,7 +6640,8 @@ class RepositoryPage(BasePage):
                             source_nbr += 1
 
                             if source_handle in source_list:
-                                source_name = self.source_link(source, uplink = True)
+                                source_name = self.source_link(source_handle, source.get_title(), 
+                                    source.get_gramps_id(), uplink = self.up)
                             else:
                                 source_name = source.get_title()