diff --git a/uk/ac/sanger/artemis/editor/BigPane.java b/uk/ac/sanger/artemis/editor/BigPane.java
index 118f27f5b91ab206c61a5bf949738c3704d0f58c..02f34155d0763f2c06b2d08af9133ef8510b2f40 100644
--- a/uk/ac/sanger/artemis/editor/BigPane.java
+++ b/uk/ac/sanger/artemis/editor/BigPane.java
@@ -106,7 +106,7 @@ public class BigPane extends JFrame
 
     Box evidenceBox = dataView.getEvidenceBox();
     if(overlapFeature != null)
-      evidenceBox.add(getOverlapFeatures(overlapFeature),0);
+      evidenceBox.add(getOverlapFeatures(overlapFeature,desktop),0);
     evidenceBox.add(Box.createVerticalGlue());
 
     ScrollPanel scroller = new ScrollPanel();
@@ -135,10 +135,11 @@ public class BigPane extends JFrame
   * Display for overlapping Pfam features.
   *
   */
-  private Box getOverlapFeatures(FeatureVector overlapFeature)
+  private Box getOverlapFeatures(FeatureVector overlapFeature,
+                                 JDesktopPane desktop)
   {
     Box bdown = Box.createVerticalBox();
-    bdown.add(new EvidenceViewer(edit_feature,overlapFeature));
+    bdown.add(new EvidenceViewer(edit_feature,overlapFeature,desktop));
     return bdown;
   }
 
diff --git a/uk/ac/sanger/artemis/editor/DataCollectionPane.java b/uk/ac/sanger/artemis/editor/DataCollectionPane.java
index e736b10487cf68f7d613a23687be9350763be158..c48bcd753429244bb04397d106a88dcbb0d9c690 100644
--- a/uk/ac/sanger/artemis/editor/DataCollectionPane.java
+++ b/uk/ac/sanger/artemis/editor/DataCollectionPane.java
@@ -430,7 +430,7 @@ public class DataCollectionPane extends JScrollPane
   * @param desktop	desktop pane.
   *
   */
-  protected void setUpSRSFrame(URL url, String name, JDesktopPane desktop)
+  protected static void setUpSRSFrame(URL url, String name, JDesktopPane desktop)
                  throws IOException
   {
     if(BigPane.srsFrame == null)
diff --git a/uk/ac/sanger/artemis/editor/EvidenceViewer.java b/uk/ac/sanger/artemis/editor/EvidenceViewer.java
index 370f8fee4b995bf0704942542f6d256d532d6c2f..fef4bca5c0b00ef6537ce3b33846dafc8a635658 100644
--- a/uk/ac/sanger/artemis/editor/EvidenceViewer.java
+++ b/uk/ac/sanger/artemis/editor/EvidenceViewer.java
@@ -25,7 +25,10 @@
 package uk.ac.sanger.artemis.editor;
 
 import javax.swing.JPanel;
+import javax.swing.JOptionPane;
+import javax.swing.JDesktopPane;
 import java.awt.*;
+import java.awt.event.*;
 import java.awt.geom.AffineTransform;
 import java.util.StringTokenizer;
 
@@ -45,9 +48,13 @@ public class EvidenceViewer extends JPanel
   private int bound = 35;
   private Feature edit_feature;
   private FeatureVector overlapFeature;
+  private float unitLength;
+  private int YDISPLACEMENT = 20;
+  private JDesktopPane desktop;
+
 
   public EvidenceViewer(Feature edit_feature, 
-                        FeatureVector overlapFeature)                       
+                        FeatureVector overlapFeature, JDesktopPane desktop)
   {
     this.edit_feature   = edit_feature;
     this.overlapFeature = overlapFeature;
@@ -55,6 +62,7 @@ public class EvidenceViewer extends JPanel
     featStart = this_loc.getFirstBase();
     featEnd   = this_loc.getLastBase();
 
+    this.desktop = desktop;
     this.evidenceStart = evidenceStart;
     this.evidenceEnd   = evidenceEnd;
 
@@ -62,6 +70,8 @@ public class EvidenceViewer extends JPanel
     final Dimension dim = new Dimension(500,hgt);
     setPreferredSize(dim);
     setMaximumSize(dim);
+
+    addMouseListener(new MouseClickListener());
   }
 
   /**
@@ -87,8 +97,7 @@ public class EvidenceViewer extends JPanel
     int unit     = (int)(resultwidth/npoints);
     int featUnit = (featEnd-featStart)/npoints;
 
-    float unitLength = (float)resultwidth/(float)(featEnd-featStart);
-
+    unitLength = (float)resultwidth/(float)(featEnd-featStart);
 
 // feature segments
     final FeatureSegmentVector this_feature_segments = edit_feature.getSegments();
@@ -174,9 +183,8 @@ public class EvidenceViewer extends JPanel
       g2.setStroke(new BasicStroke(3.f));
       g2.drawString(pfamID, bound+start+(end-start-strwid)/2, bound2+ydisp+5);
      
-      ydisp += 20;
+      ydisp += YDISPLACEMENT;
     }
-
   }
 
 
@@ -201,5 +209,84 @@ public class EvidenceViewer extends JPanel
     g2.drawLine(bound+start, bound+hgtNumber+6,
                 bound+stop,  bound+hgtNumber+6);
   }
+
+  public class MouseClickListener implements MouseListener
+  {
+    public void mousePressed(MouseEvent e) 
+    {
+    }
+
+    public void mouseReleased(MouseEvent e) 
+    {
+    }
+
+    public void mouseEntered(MouseEvent e) 
+    {
+    }
+
+    public void mouseExited(MouseEvent e) 
+    {
+    }
+
+    public void mouseClicked(MouseEvent e) 
+    {
+      int ydisp  = 0;
+      int bound2 = bound*2;
+      int ydisp2 = YDISPLACEMENT/2;
+      Point loc  = e.getPoint();
+      for(int i = 0; i<overlapFeature.size(); ++i)
+      {
+        Feature this_feature = overlapFeature.elementAt(i);
+        Location this_loc = this_feature.getLocation();
+        int start = this_loc.getFirstBase();
+        int end   = this_loc.getLastBase();
+
+        start = (int)((start-featStart)*unitLength)+bound;
+        end   = (int)((end-featStart)*unitLength)+bound;
+
+        if(loc.x < end &&
+           loc.x > start &&
+           loc.y < ydisp+ydisp2+bound2 &&
+           loc.y > ydisp-ydisp2+bound2)
+        {
+          String note = this_feature.getNote();
+
+          int indPF   = note.indexOf("PF");  // Pfam ID
+          if(indPF == -1)
+            continue;
+
+          StringTokenizer tok = new StringTokenizer(note.substring(indPF)," ,;");
+          String pfamID = tok.nextToken();
+
+
+          String pfam_cmd = "http://www.sanger.ac.uk/cgi-bin/Pfam/getacc?"+pfamID;
+          BrowserControl.displayURL(pfam_cmd);
+
+          if(BigPane.srsTabPane.isSelected())
+          {
+            try
+            {
+              DataCollectionPane.setUpSRSFrame(new java.net.URL(pfam_cmd),
+                                               pfamID,desktop);
+            }
+            catch(java.net.ConnectException connect)
+            {
+              JOptionPane.showMessageDialog(EvidenceViewer.this,
+                       "Cannot retrieve "+pfamID+
+                       "\nConnection failed to:\n"+pfamID,
+                       "Connection Error",
+                       JOptionPane.WARNING_MESSAGE);
+            }
+            catch(Exception exp)
+            {
+              exp.printStackTrace();
+            }
+          }
+        }
+        ydisp += YDISPLACEMENT;
+      }
+    }
+  }
+
 }