diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/chemicals/ChemicalRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/chemicals/ChemicalRestImpl.java
index 25c714b01695187487c30f571f98fa7d8dccb02f..84620343d657f1b57711e82d62f619825a9a6b48 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/chemicals/ChemicalRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/chemicals/ChemicalRestImpl.java
@@ -127,8 +127,12 @@ public class ChemicalRestImpl extends BaseRestImpl {
 
 		try {
 			MeSH mesh = meSHParser.getMeSH(chemical.getChemicalId());
-			description = mesh.getDescription();
-			synonyms = mesh.getSynonyms();
+			if (mesh != null) {
+			  description = mesh.getDescription();
+			  synonyms = mesh.getSynonyms();
+			} else {
+			  logger.warn("Mesh used by chemical is invalid: " + chemical.getChemicalId());
+			}
 		} catch (AnnotatorException e) {
 			logger.error("Problem with accessing mesh database", e);
 		}
diff --git a/rest-api/src/test/java/lcsb/mapviewer/api/projects/chemicals/ChemicalRestImplTest.java b/rest-api/src/test/java/lcsb/mapviewer/api/projects/chemicals/ChemicalRestImplTest.java
index 32b1acd9ede8099f67a72ad949d864f29c081051..ba530e1803d366a1989f6c10a25e80048655e5ff 100644
--- a/rest-api/src/test/java/lcsb/mapviewer/api/projects/chemicals/ChemicalRestImplTest.java
+++ b/rest-api/src/test/java/lcsb/mapviewer/api/projects/chemicals/ChemicalRestImplTest.java
@@ -21,13 +21,18 @@ import lcsb.mapviewer.model.map.MiriamData;
 import lcsb.mapviewer.model.map.MiriamType;
 import lcsb.mapviewer.model.map.model.Model;
 import lcsb.mapviewer.services.interfaces.IModelService;
+import lcsb.mapviewer.services.search.db.DbSearchCriteria;
+import lcsb.mapviewer.services.search.db.chemical.IChemicalService;
 
 public class ChemicalRestImplTest extends RestTestFunctions {
 	Logger									 logger	= Logger.getLogger(ChemicalRestImplTest.class);
 
-	@Autowired
+    @Autowired
 
-	private ChemicalRestImpl _drugRestImpl;
+    private ChemicalRestImpl _drugRestImpl;
+
+    @Autowired
+    private IChemicalService chemicalService;
 
 	@AfterClass
 	public static void tearDownAfterClass() throws Exception {
@@ -41,18 +46,30 @@ public class ChemicalRestImplTest extends RestTestFunctions {
 	public void tearDown() throws Exception {
 	}
 
-	@Test
-	public void testPrepareChemical() throws Exception {
-		try {
-			Chemical chemical = new Chemical();
-			chemical.setChemicalId(new MiriamData(MiriamType.MESH_2012, "D010300"));
-			Map<String, Object> result = _drugRestImpl.prepareChemical(chemical, _drugRestImpl.createChemicalColumnSet(""), new ArrayList<>());
-			assertNotNull(result);
-		} catch (Exception e) {
-			e.printStackTrace();
-			throw e;
-		}
-	}
+    @Test
+    public void testPrepareChemical() throws Exception {
+        try {
+            Chemical chemical = new Chemical();
+            chemical.setChemicalId(new MiriamData(MiriamType.MESH_2012, "D010300"));
+            Map<String, Object> result = _drugRestImpl.prepareChemical(chemical, _drugRestImpl.createChemicalColumnSet(""), new ArrayList<>());
+            assertNotNull(result);
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw e;
+        }
+    }
+
+    @Test
+    public void testPrepareChemicalWithProblematicMesh() throws Exception {
+        try {
+            Chemical chemical = chemicalService.getByName("Tetrachlorodibenzodioxin", new DbSearchCriteria().disease(new MiriamData(MiriamType.MESH_2012, "D010300")));
+            Map<String, Object> result = _drugRestImpl.prepareChemical(chemical, _drugRestImpl.createChemicalColumnSet(""), new ArrayList<>());
+            assertNotNull(result);
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw e;
+        }
+    }
 
 	protected ChemicalRestImpl createMockChemicalRest(String string) throws Exception {
 		Model model = super.getModelForFile(string, true);