diff --git a/src/main/webapp/js/diagramly/Embed.js b/src/main/webapp/js/diagramly/Embed.js
index 4209ebcaf779a691b36174369ecf904aa8f1f710..8323a1ed9fc5b0db44b9c86a26828ea07fa37c35 100644
--- a/src/main/webapp/js/diagramly/Embed.js
+++ b/src/main/webapp/js/diagramly/Embed.js
@@ -70,7 +70,7 @@
 
 			var script = document.createElement('script');
 			script.type = 'text/javascript';
-			script.src = 'https://app.diagrams.net/math/MathJax.js?config=TeX-MML-AM_HTMLorMML';
+			script.src = 'https://app.diagrams.net/math/MathJax.js';
 			document.getElementsByTagName('head')[0].appendChild(script);
 		}
 	};
@@ -516,9 +516,9 @@
 						    	{
 									if (math == '1')
 									{
-										mxClient.NO_FO = true;
+										mxClient.NO_FO = mxClient.IS_SF;
 									}
-							    	
+						    		
 							    	var data = (xhr.getText != null) ? xhr.getText() : xhr.responseText;
 
 							    	if (data != null)
@@ -547,7 +547,7 @@
 							    				}
 							    			}
 							    		}
-
+							    		
 							    		if (newDocument != null && newDocument.documentElement.nodeName == 'svg')
 							    		{
 							    			var tmp = newDocument.documentElement.getAttribute('content');
@@ -574,8 +574,29 @@
 							    			
 							    			if (diagrams.length > 0)
 							    			{
-							    				data = Graph.decompress(mxUtils.getTextContent(diagrams[0]));
-							    				newDocument = mxUtils.parseXml(data);
+												var text = mxUtils.trim(mxUtils.getTextContent(diagrams[0]));
+												var node = null;
+												
+												if (text.length > 0)
+												{
+													var tmp = Graph.decompress(text);
+													
+													if (tmp != null && tmp.length > 0)
+													{
+														newDocument = mxUtils.parseXml(tmp);
+													}
+												}
+												else
+												{
+													var temp = mxUtils.getChildNodes(diagrams[0]);
+													
+													if (temp.length > 0)
+													{
+														// Creates new document for unique IDs within mxGraphModel
+														newDocument = mxUtils.createXmlDocument();
+														newDocument.appendChild(newDocument.importNode(temp[0], true));
+													}
+												}
 							    			}
 							    		}
 							    		
diff --git a/src/main/webapp/js/embed.dev.js b/src/main/webapp/js/embed.dev.js
index a392275cfacb0172007d724a741a3609de992c7a..627bdf4c63ca581231e85507da738a162ca25f9b 100644
--- a/src/main/webapp/js/embed.dev.js
+++ b/src/main/webapp/js/embed.dev.js
@@ -70,7 +70,7 @@
 
 			var script = document.createElement('script');
 			script.type = 'text/javascript';
-			script.src = 'https://app.diagrams.net/math/MathJax.js?config=TeX-MML-AM_HTMLorMML';
+			script.src = 'https://app.diagrams.net/math/MathJax.js';
 			document.getElementsByTagName('head')[0].appendChild(script);
 		}
 	};
@@ -516,9 +516,9 @@
 						    	{
 									if (math == '1')
 									{
-										mxClient.NO_FO = true;
+										mxClient.NO_FO = mxClient.IS_SF;
 									}
-							    	
+						    		
 							    	var data = (xhr.getText != null) ? xhr.getText() : xhr.responseText;
 
 							    	if (data != null)
@@ -547,7 +547,7 @@
 							    				}
 							    			}
 							    		}
-
+							    		
 							    		if (newDocument != null && newDocument.documentElement.nodeName == 'svg')
 							    		{
 							    			var tmp = newDocument.documentElement.getAttribute('content');
@@ -574,8 +574,29 @@
 							    			
 							    			if (diagrams.length > 0)
 							    			{
-							    				data = Graph.decompress(mxUtils.getTextContent(diagrams[0]));
-							    				newDocument = mxUtils.parseXml(data);
+												var text = mxUtils.trim(mxUtils.getTextContent(diagrams[0]));
+												var node = null;
+												
+												if (text.length > 0)
+												{
+													var tmp = Graph.decompress(text);
+													
+													if (tmp != null && tmp.length > 0)
+													{
+														newDocument = mxUtils.parseXml(tmp);
+													}
+												}
+												else
+												{
+													var temp = mxUtils.getChildNodes(diagrams[0]);
+													
+													if (temp.length > 0)
+													{
+														// Creates new document for unique IDs within mxGraphModel
+														newDocument = mxUtils.createXmlDocument();
+														newDocument.appendChild(newDocument.importNode(temp[0], true));
+													}
+												}
 							    			}
 							    		}