diff --git a/mutalyzer/__init__.py b/mutalyzer/__init__.py
index 08757422e50400b160a48f978ed518b6807d9d4e..6eed649405013f50e9f3b5ca85b45bdcb89c69f1 100644
--- a/mutalyzer/__init__.py
+++ b/mutalyzer/__init__.py
@@ -22,7 +22,7 @@ import os
 
 RELEASE = False
 
-__version_info__ = ('2', '0', 'beta-12', 'dev')
+__version_info__ = ('2', '0', 'beta-12', 'browser-link-branch', 'dev')
 __date__ = '30 Sep 2011'
 
 
diff --git a/mutalyzer/mapping.py b/mutalyzer/mapping.py
index afc5b837d5de2c95dbecdf76cda037da772549ac..ac02d555e1ef689a258ed8da5eb13d1a710dc7db 100644
--- a/mutalyzer/mapping.py
+++ b/mutalyzer/mapping.py
@@ -446,6 +446,34 @@ class Converter(object) :
         return "%s:%s" % (chromAcc, var_in_g)
     #c2chrom
 
+    def positions_to_chromosomal_region(self, reference, version, positions):
+        """
+        Convert c. positions to chromosomal region.
+        """
+        #if not parseTree.RefSeqAcc: #In case of LRG for example
+        #    self.__output.addMessage(__file__, 4, "EONLYGB",
+        #        "Currently we only support GenBank Records")
+        #    return None
+
+        #if parseTree.RefType != 'c':
+        #    return None
+
+        self._FieldsFromDb(reference, version)
+
+        mapper = self.makeCrossmap()
+        if not mapper:
+            return None
+
+        g = []
+
+        for position in positions:
+            main = mapper.main2int(position.MainSgn +  position.Main)
+            offset = mapper.offset2int(position.OffSgn +  position.Offset)
+            g.append(mapper.x2g(main, offset))
+
+        return self.dbFields['chromosome'], min(g), max(g)
+    #coding_to_chromosomal
+
     def correctChrVariant(self, variant) :
         """
         @arg variant:
diff --git a/mutalyzer/templates/check.html b/mutalyzer/templates/check.html
index c04c888c8220fa34e506257ad8cceaae737adc68..1eaab372d902f4ffb961fbb8be47f0de70aef800 100644
--- a/mutalyzer/templates/check.html
+++ b/mutalyzer/templates/check.html
@@ -48,6 +48,7 @@
             </div>
           </div>
         </div> <!-- not:visualisation -->
+        <a tal:condition = "browserLink" tal:attributes = "href browserLink"><br>View region in UCSC Genome Browser</a>
       </div> <!-- form area -->
       <br>
       <div tal:condition = "lastpost">
@@ -264,8 +265,6 @@
             <a tal:content = "reference"
                tal:attributes = "href string:Reference/${reference}"></a>
             <br>
-            <a tal:condition = "browserLink" tal:attributes = "href browserLink">UCSC Genome Browser</a>
-            <br>
             <br>
           </div> <!-- interactive -->
         </div> <!-- reference -->
diff --git a/mutalyzer/variantchecker.py b/mutalyzer/variantchecker.py
index 9adb288902b70bb551b377eff6aae658c4e5c5fa..005a55466392da5d30e18c556aac83fd50384b00 100644
--- a/mutalyzer/variantchecker.py
+++ b/mutalyzer/variantchecker.py
@@ -22,6 +22,7 @@ from Bio.Alphabet import IUPAC
 from mutalyzer import util
 from mutalyzer.grammar import Grammar
 from mutalyzer.mutator import Mutator
+from mutalyzer.mapping import Converter
 from mutalyzer import Retriever
 from mutalyzer import GenRecord
 from mutalyzer import Db
@@ -979,6 +980,8 @@ def process_raw_variant(mutator, variant, record, transcript, output):
                 # Coding positioning.
                 first, last = _coding_to_genomic(first_location, last_location,
                                                  transcript, output)
+                output.addOutput('rawCodingLocations', first_location)
+                output.addOutput('rawCodingLocations', last_location)
             else:
                 # Genomic positioning.
                 first, last = _genomic_to_genomic(first_location, last_location)
@@ -1545,6 +1548,14 @@ def check_variant(description, config, output):
     output.addOutput('original', str(mutator.orig))
     output.addOutput('mutated', str(mutator.mutated))
 
+    # Chromosomal region
+    locations = output.getOutput('rawCodingLocations')
+    if locations:
+        converter = Converter('hg19', config, output)
+        region = converter.positions_to_chromosomal_region(parsed_description.RefSeqAcc, parsed_description.Version, set(locations))
+        if region:
+            output.addOutput('chromosomalRegion', region)
+
     # Protein.
     for gene in record.record.geneList:
         for transcript in gene.transcriptList:
diff --git a/mutalyzer/website.py b/mutalyzer/website.py
index ce81b1f56ddd93e7ee740b6f92876d60fc3c7212..e0cadd77a95464dfd011b5133d05bd841d12ba29 100644
--- a/mutalyzer/website.py
+++ b/mutalyzer/website.py
@@ -727,21 +727,14 @@ class Check:
 
         # Create a link to the UCSC Genome Browser
         # This is an ugly proof of concept.
+        # NM_003002.2:c.274G>T
+        # http://genome.ucsc.edu/cgi-bin/hgTracks?db=hg19&position=chr11:111959695
         browser_link = None
         if output.getIndexedOutput('organism', 0) == 'Homo sapiens':
-            converter = Converter('hg19', config, output)
-            variant = converter.c2chrom(str(name))
-            if variant:
-                import re
-                match = re.match('NC_(\d+)\.\d+:g.(\d+)_?(\d*)[^_\d]', variant)
-                if match:
-                    # Todo: convert NC_0000XX to chr1...chrY
-                    chromosome, start, stop = match.groups()
-                    if stop:
-                        position = 'chr%i:%i-%i' % (int(chromosome), int(start), int(stop))
-                    else:
-                        position = 'chr%i:%i' % (int(chromosome), int(start))
-                    browser_link = 'http://genome.ucsc.edu/cgi-bin/hgTracks?db=hg19&position=%s' % position
+            region = output.getIndexedOutput('chromosomalRegion', 0)
+            if region:
+                chromosome, first, last = region
+                browser_link = 'http://genome.ucsc.edu/cgi-bin/hgTracks?db=hg19&position=%s:%i-%i' % (chromosome, first - 10, last + 10)
 
         # Todo: Generate the fancy HTML views for the proteins here instead
         # of in mutalyzer/variantchecker.py.