diff --git a/mutalyzer/Db.py b/mutalyzer/Db.py
index 7e5e740f6a9d04255a644c34cfc978d600491aba..4186736212d5c8fa07b52293277a8c10ffa0d4cb 100644
--- a/mutalyzer/Db.py
+++ b/mutalyzer/Db.py
@@ -287,20 +287,33 @@ class Mapping(Db) :
             args.append(mrnaAcc)
             args.append(version)
 
+        # The fallback to NULL selector (and selector_version) is necessary
+        # to accept transcript selection in NM references. To be safe, we also
+        # prefer entries with a match over entries with NULL.
+        # Example: NM_017780.2(CHD7_v001):c.109A>T
         if selector is not None:
-            where.append('selector = %s')
+            where.append('(selector = %s or (selector IS NULL and selector_version IS NULL and gene = %s and %s = 1))')
             args.append(selector)
+            args.append(selector)
+            args.append(selector_version)
+            order.append('(selector is null) asc')
 
         if selector_version is not None:
-            where.append('selector_version = %s')
+            where.append('(selector_version = %s or (selector_version IS NULL and selector_version IS NULL and gene = %s and %s = 1))')
             args.append(selector_version)
+            args.append(selector)
+            args.append(selector_version)
+            order.append('(selector_version is null) asc')
 
         q += """
              where """ + ' AND '.join(where) + """
              order by """ + ', '.join(order) + ';'
 
         statement = q, tuple(args)
-        return self.query(statement)[0]
+        try:
+            return self.query(statement)[0]
+        except IndexError:
+            return None
 
     def get_Transcripts(self, chrom, p1, p2, overlap) :
         """
diff --git a/mutalyzer/mapping.py b/mutalyzer/mapping.py
index e005a895bd243f192beee1db4710a2d59b117bc3..810d7d19628a5dd6dd53f3fc313f1446e04583de 100644
--- a/mutalyzer/mapping.py
+++ b/mutalyzer/mapping.py
@@ -212,6 +212,13 @@ class Converter(object) :
         else :
             if version in versions :
                 Values = self.__database.getAllFields(acc, version, selector, selector_version)
+                if not Values:
+                    self.__output.addMessage(__file__, 4, "EACCNOTINDB",
+                                             "The accession number %s version %s "
+                                             "with transcript %s version %s could not be found "
+                                             "in our database." %
+                                             (acc, version, selector, selector_version))
+                    return None
                 return self._FieldsFromValues(Values)
             #if
             if not version :
@@ -510,7 +517,7 @@ class Converter(object) :
             version = self.parseTree.Version
             if self.parseTree.Gene:
                 selector = self.parseTree.Gene.GeneSymbol
-                selector_version = int(self.parseTree.Gene.TransVar)
+                selector_version = int(self.parseTree.Gene.TransVar or 1)
             else:
                 selector = selector_version = None
             self._FieldsFromDb(acc, version, selector, selector_version)
@@ -592,6 +599,8 @@ class Converter(object) :
             return None
 
         values = self.__database.getAllFields(reference, version)
+        if not values:
+            return None
         self._FieldsFromValues(values)
 
         mapper = self.makeCrossmap()
diff --git a/tests/test_mapping.py b/tests/test_mapping.py
index 8a9390bf595bca926f58caf048b5a618ee22b0c5..1732d9aff37ccdb86c257dc5b2e3a0885874389c 100644
--- a/tests/test_mapping.py
+++ b/tests/test_mapping.py
@@ -236,3 +236,63 @@ class TestConverter():
         converter = self._converter('hg19')
         genomic = converter.c2chrom('NC_012920.1(ND4_v001):c.1271del')
         assert_equal(genomic, 'NC_012920.1:m.12030del')
+
+    def test_nm_without_selector_chrom2c(self):
+        """
+        NM reference without transcript selection c. to g.
+        """
+        converter = self._converter('hg19')
+        genomic = converter.c2chrom('NM_017780.2:c.109A>T')
+        assert_equal(genomic, 'NC_000008.10:g.61654100A>T')
+
+    def test_nm_with_selector_chrom2c(self):
+        """
+        NM reference with transcript selection c. to g.
+        """
+        converter = self._converter('hg19')
+        genomic = converter.c2chrom('NM_017780.2(CHD7_v001):c.109A>T')
+        assert_equal(genomic, 'NC_000008.10:g.61654100A>T')
+
+    def test_nm_c2chrom_no_selector(self):
+        """
+        To NM reference should never result in transcript selection.
+        """
+        converter = self._converter('hg19')
+        variant = converter.correctChrVariant('NC_000008.10:g.61654100A>T')
+        coding = converter.chrom2c(variant, 'list')
+        assert 'NM_017780.2:c.109A>T' in coding
+
+    def test_incorrect_selector_c2chrom(self):
+        """
+        Incorrect selector.
+        """
+        converter = self._converter('hg19')
+        genomic = converter.c2chrom('NM_017780.2(CHD8):c.109A>T')
+        erange = self.output.getMessagesWithErrorCode('EACCNOTINDB')
+        assert_equal(len(erange), 1)
+
+    def test_incorrect_selector_version_c2chrom(self):
+        """
+        Incorrect selector version.
+        """
+        converter = self._converter('hg19')
+        genomic = converter.c2chrom('NM_017780.2(CHD7_v002):c.109A>T')
+        erange = self.output.getMessagesWithErrorCode('EACCNOTINDB')
+        assert_equal(len(erange), 1)
+
+    def test_no_selector_version_c2chrom(self):
+        """
+        Selector but no selector version.
+        """
+        converter = self._converter('hg19')
+        genomic = converter.c2chrom('NM_017780.2(CHD7):c.109A>T')
+        assert_equal(genomic, 'NC_000008.10:g.61654100A>T')
+
+    def test_incorrect_selector_no_selector_version_c2chrom(self):
+        """
+        Incorrect selector, no selector version.
+        """
+        converter = self._converter('hg19')
+        genomic = converter.c2chrom('NM_017780.2(CHD8):c.109A>T')
+        erange = self.output.getMessagesWithErrorCode('EACCNOTINDB')
+        assert_equal(len(erange), 1)