diff --git a/mutalyzer/Scheduler.py b/mutalyzer/Scheduler.py
index e02744fc20a78b40d58f03f448ca957e70da17ef..f95f4ad60622d1cab1a3e01f6fafb00f9945938e 100644
--- a/mutalyzer/Scheduler.py
+++ b/mutalyzer/Scheduler.py
@@ -505,13 +505,13 @@ Mutalyzer batch checker.""" % url)
                 variant = converter.correctChrVariant(variant)
 
                 #TODO: Parse the variant and check for c or g. This is ugly
-                if not(":c." in variant or ":g." in variant) :
+                if not(":c." in variant or ":n." in variant or ":g." in variant) :
                     #Bad name
                     grammar = Grammar(O)
                     grammar.parse(variant)
                 #if
 
-                if ":c." in variant :
+                if ":c." in variant or ":n." in variant :
                     # Do the c2chrom dance
                     variant = converter.c2chrom(variant)
                     # NOTE:
diff --git a/mutalyzer/mapping.py b/mutalyzer/mapping.py
index 4ecba590e35343324bc106a1f1635835a8740a21..9485fe4071ee5a1538c271c432855a397d45aaa9 100644
--- a/mutalyzer/mapping.py
+++ b/mutalyzer/mapping.py
@@ -281,7 +281,7 @@ class Converter(object) :
             2. Position in I{g.} notation
         @rtype: triple (integer, integer, integer)
         """
-        if Type == 'c' :
+        if Type in 'cn' :
             if Loc.IVSLoc:
                 ivs_number = int(Loc.IVSLoc.IVSNumber)
                 if ivs_number < 1 or ivs_number > C.numberOfIntrons():
@@ -698,7 +698,7 @@ class Converter(object) :
 
             #Check if n or c type
             info = self.crossmap.info()
-            if info[0] == '1' and info[1] == info[2] :
+            if info[0] == 1 and info[1] == info[2] :
                 mtype = 'n'
             else :
                 mtype = 'c'
diff --git a/mutalyzer/services/rpc.py b/mutalyzer/services/rpc.py
index 1cb4a7ac79c17a26b2bdc1449426c15ba687372f..4e4f87767df4797af31fce18bb60b64735d3f3d3 100644
--- a/mutalyzer/services/rpc.py
+++ b/mutalyzer/services/rpc.py
@@ -568,7 +568,7 @@ class MutalyzerService(ServiceBase):
         converter = Converter(build, O)
         variant = converter.correctChrVariant(variant)
 
-        if "c." in variant :
+        if "c." in variant or "n." in variant:
             result = [converter.c2chrom(variant)]
         elif "g." in variant :
             result = converter.chrom2c(variant, "list", gene=gene)
diff --git a/mutalyzer/website.py b/mutalyzer/website.py
index 15f5dcf41e477dc1e9bc04317e2e83e83979f9da..c738a6731bace7a6ffffb8147d89a6a814abb22e 100644
--- a/mutalyzer/website.py
+++ b/mutalyzer/website.py
@@ -584,12 +584,12 @@ class PositionConverter:
             variant = converter.correctChrVariant(variant)
 
             if variant:
-                if not(":c." in variant or ":g." in variant):
+                if not(":c." in variant or ":n." in variant or ":g." in variant):
                     #Bad name
                     grammar = Grammar(output)
                     grammar.parse(variant)
 
-                if ":c." in variant:
+                if ":c." in variant or ":n." in variant:
                     # Do the c2chrom dance
                     variant = converter.c2chrom(variant)
 
diff --git a/tests/test_mapping.py b/tests/test_mapping.py
index 2499d016e8b79535d0b180023d5394ec46505d40..084cd96e9fffaecc29aec5427b61483efd031642 100644
--- a/tests/test_mapping.py
+++ b/tests/test_mapping.py
@@ -37,7 +37,20 @@ class TestConverter():
         assert 'NM_003002.2:c.274G>T' in coding
         # Fix for r536: disable the -u and +d convention.
         #assert 'NR_028383.1:c.1-u2173C>A' in coding
-        assert 'NR_028383.1:c.-2173C>A' in coding
+        assert 'NR_028383.1:n.-2173C>A' in coding
+
+    def test_converter_non_coding(self):
+        """
+        Test with variant on non-coding transcript.
+        """
+        converter = self._converter('hg19')
+        genomic = converter.c2chrom('NR_028383.1:n.-2173C>A')
+        assert_equal(genomic, 'NC_000011.9:g.111959695G>T')
+        coding = converter.chrom2c(genomic, 'list')
+        assert 'NM_003002.2:c.274G>T' in coding
+        # Fix for r536: disable the -u and +d convention.
+        #assert 'NR_028383.1:c.1-u2173C>A' in coding
+        assert 'NR_028383.1:n.-2173C>A' in coding
 
     def test_converter_compound(self):
         """
@@ -48,7 +61,7 @@ class TestConverter():
         assert_equal(genomic, 'NC_000011.9:g.[111959695G>T;111959699A>G]')
         coding = converter.chrom2c(genomic, 'list')
         assert 'NM_003002.2:c.[274G>T;278A>G]' in coding
-        assert 'NR_028383.1:c.[-2173C>A;-2177T>C]' in coding
+        assert 'NR_028383.1:n.[-2173C>A;-2177T>C]' in coding
 
     def test_hla_cluster(self):
         """
@@ -76,7 +89,7 @@ class TestConverter():
         #assert 'NM_001145134.1:c.-138-u21_60del123456789' in coding
         #assert 'NR_021492.1:c.1-u5170_1-u4338del123456789' in coding
         assert 'NM_001145134.1:c.-159_60del123456789' in coding
-        assert 'NR_021492.1:c.-5170_-4338del123456789' in coding
+        assert 'NR_021492.1:n.-5170_-4338del123456789' in coding
 
     def test_S_Venkata_Suresh_Kumar(self):
         """
diff --git a/tests/test_services_soap.py b/tests/test_services_soap.py
index 8ac6c91f08208c46ff8ce5b7b2e06d43ce7246c6..8f1ba62c56d46dec11c0a2ab02b6c5af95ba3c38 100644
--- a/tests/test_services_soap.py
+++ b/tests/test_services_soap.py
@@ -152,7 +152,7 @@ class TestServicesSoap():
         assert_equal(type(r.string), list)
         # Fix for r536: disable the -u and +d convention.
         #assert 'XM_001715131.2:c.1155+d19483A>G' in r.string
-        assert 'XM_001715131.2:c.*19483A>G' in r.string
+        assert 'XM_001715131.2:n.*19483A>G' in r.string
 
     def test_gettranscriptsbygenename_valid(self):
         """