diff --git a/mutalyzer/Retriever.py b/mutalyzer/Retriever.py
index 5ca0bb480b6f4c7899f0dcac8cd7e1e4a1d7ffa0..77da54e894a5eed12b697b8646a2b967f3bbd35c 100644
--- a/mutalyzer/Retriever.py
+++ b/mutalyzer/Retriever.py
@@ -590,8 +590,16 @@ class GenBankRetriever(Retriever):
         query = "%s[Gene] AND %s[Orgn]" % (gene, organism)
         try:
             handle = Entrez.esearch(db = "gene", term = query)
-            searchresult = Entrez.read(handle)
-            handle.close()
+            try:
+                searchresult = Entrez.read(handle)
+            except Entrez.Parser.ValidationError:
+                self._output.addMessage(__file__, -1, 'INFO',
+                                        'Error reading Entrez esearch result.')
+                self._output.addMessage(__file__, 4, 'ERETR',
+                                        'Could not search for gene %s.' % gene)
+                return None
+            finally:
+                handle.close()
         except (IOError, urllib2.HTTPError, HTTPException) as e:
             self._output.addMessage(__file__, -1, 'INFO',
                                     'Error connecting to Entrez esearch: %s' % str(e))
@@ -604,8 +612,16 @@ class GenBankRetriever(Retriever):
         for i in searchresult["IdList"] :                 # Inspect all results.
             try:
                 handle = Entrez.esummary(db = "gene", id = i)
-                summary = Entrez.read(handle)
-                handle.close()
+                try:
+                    summary = Entrez.read(handle)
+                except Entrez.Parser.ValidationError:
+                    self._output.addMessage(__file__, -1, 'INFO',
+                                            'Error reading Entrez esummary result.')
+                    self._output.addMessage(__file__, 4, 'ERETR',
+                                            'Could not get mapping information for gene %s.' % gene)
+                    return None
+                finally:
+                    handle.close()
             except (IOError, urllib2.HTTPError, HTTPException) as e:
                 self._output.addMessage(__file__, -1, 'INFO',
                                         'Error connecting to Entrez esummary: %s' % str(e))
diff --git a/mutalyzer/parsers/genbank.py b/mutalyzer/parsers/genbank.py
index e82836638af058a695bf19145cf5e28bad8b9a13..867fa78f7b2d838d9076fc460eb5fd02282aee58 100644
--- a/mutalyzer/parsers/genbank.py
+++ b/mutalyzer/parsers/genbank.py
@@ -138,15 +138,25 @@ class GBparser():
             return link.protein_accession
 
         handle = Entrez.esearch(db = "nucleotide", term = transcriptAcc)
-        result = Entrez.read(handle)
-        handle.close()
+        try:
+            result = Entrez.read(handle)
+        except Entrez.Parser.ValidationError:
+            # Todo: Log this error.
+            return None
+        finally:
+            handle.close()
 
         transcriptGI = result["IdList"][0]
 
         handle = Entrez.elink(dbfrom = "nucleotide", db = "protein",
                               id = transcriptGI)
-        result = Entrez.read(handle)
-        handle.close()
+        try:
+            result = Entrez.read(handle)
+        except Entrez.Parser.ValidationError:
+            # Todo: Log this error.
+            return None
+        finally:
+            handle.close()
 
         if not result[0]["LinkSetDb"] :
             queries.update_transcript_protein_link(transcriptAcc)