diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/AboutParser.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/AboutParser.java
index d0c21f9..d24570b 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/AboutParser.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/AboutParser.java
@@ -102,13 +102,13 @@
 		buf.append(JSonHelper.BEGIN_BRACE);
 		buf.append(JSonHelper.NEWLINE + JSonHelper.SPACE);
 
-		buf.append(JSonHelper.IDENTIFIER);
+		buf.append(JSonHelper.getQuotes(JSonHelper.IDENTIFIER));
 		buf.append(JSonHelper.COLON);
 		buf.append(JSonHelper.getQuotes(id));
 		buf.append(JSonHelper.COMMA);
 
 		buf.append(JSonHelper.NEWLINE + JSonHelper.SPACE);
-		buf.append(JSonHelper.LABEL);
+		buf.append(JSonHelper.getQuotes(JSonHelper.LABEL));
 		buf.append(JSonHelper.COLON);
 		buf.append(JSonHelper.getQuotes(label));
 		buf.append(JSonHelper.COMMA);
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/NavParser.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/NavParser.java
index 0dcab04..c1446fa 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/NavParser.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/NavParser.java
@@ -60,13 +60,13 @@
 		buf.append(JSonHelper.BEGIN_BRACE);
 		buf.append(JSonHelper.NEWLINE + JSonHelper.SPACE);
 
-		buf.append(JSonHelper.IDENTIFIER);
+		buf.append(JSonHelper.getQuotes(JSonHelper.IDENTIFIER));
 		buf.append(JSonHelper.COLON);
 		buf.append(JSonHelper.getQuotes(id));
 		buf.append(JSonHelper.COMMA);
 
 		buf.append(JSonHelper.NEWLINE + JSonHelper.SPACE);
-		buf.append(JSonHelper.LABEL);
+		buf.append(JSonHelper.getQuotes(JSonHelper.LABEL));
 		buf.append(JSonHelper.COLON);
 		buf.append(JSonHelper.getQuotes(label));
 		buf.append(JSonHelper.COMMA);
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/ParseElement.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/ParseElement.java
index 2e72fca..909d383 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/ParseElement.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/ParseElement.java
@@ -82,7 +82,7 @@
 				String val = props.getProperty(key);
 
 				buff.append(JSonHelper.NEWLINE + space + JSonHelper.SPACE);
-				buff.append(key);
+				buff.append(JSonHelper.getQuotes(key));
 				buff.append(JSonHelper.COLON);
 				try {
 					val = URLEncoder.encode(val, "UTF-8"); //$NON-NLS-1$
@@ -105,7 +105,7 @@
 		} else {
 
 			buff.append(JSonHelper.NEWLINE + space + JSonHelper.SPACE);
-			buff.append(JSonHelper.CHILDREN);
+			buff.append(JSonHelper.getQuotes(JSonHelper.CHILDREN));
 			buff.append(JSonHelper.COLON);
 			buff.append(JSonHelper.BEGIN_BRACKET);
 
@@ -141,7 +141,7 @@
 				String val = props.getProperty(key);
 
 				buff.append(JSonHelper.NEWLINE + JSonHelper.SPACE);
-				buff.append(key);
+				buff.append(JSonHelper.getQuotes(key));
 				buff.append(JSonHelper.COLON);
 				try {
 					val = URLEncoder.encode(val, "UTF-8"); //$NON-NLS-1$
@@ -164,7 +164,7 @@
 		} else {
 
 			buff.append(JSonHelper.NEWLINE + JSonHelper.SPACE);
-			buff.append(JSonHelper.ITEMS);
+			buff.append(JSonHelper.getQuotes(JSonHelper.ITEMS));
 			buff.append(JSonHelper.COLON);
 			buff.append(JSonHelper.BEGIN_BRACKET);
 
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/ResultParser.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/ResultParser.java
index 48c905c..cd38295 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/ResultParser.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/ResultParser.java
@@ -77,19 +77,19 @@
 		buf.append(JSonHelper.BEGIN_BRACE);
 		buf.append(JSonHelper.NEWLINE + JSonHelper.SPACE);
 
-		buf.append(JSonHelper.IDENTIFIER);
+		buf.append(JSonHelper.getQuotes(JSonHelper.IDENTIFIER));
 		buf.append(JSonHelper.COLON);
 		buf.append(JSonHelper.getQuotes(id));
 		buf.append(JSonHelper.COMMA);
 
 		buf.append(JSonHelper.NEWLINE + JSonHelper.SPACE);
-		buf.append(JSonHelper.LABEL);
+		buf.append(JSonHelper.getQuotes(JSonHelper.LABEL));
 		buf.append(JSonHelper.COLON);
 		buf.append(JSonHelper.getQuotes(label));
 		buf.append(JSonHelper.COMMA);
 
 		buf.append(JSonHelper.NEWLINE + JSonHelper.SPACE);
-		buf.append(JSonHelper.ITEMS);
+		buf.append(JSonHelper.getQuotes(JSonHelper.ITEMS));
 		buf.append(JSonHelper.COLON);
 		buf.append(JSonHelper.BEGIN_BRACKET);
 
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/utils/JSonHelper.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/utils/JSonHelper.java
index 2255730..1043d55 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/utils/JSonHelper.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/utils/JSonHelper.java
@@ -15,7 +15,7 @@
 	//JSON Characters
 	public static final String BEGIN_BRACE = "{"; //$NON-NLS-1$
 	public static final String END_BRACE  = "}"; //$NON-NLS-1$
-	public static final String QUOTE  = "\'"; //$NON-NLS-1$
+	public static final String DOUBLEQUOTE  = "\""; //$NON-NLS-1$
 	public static final String COLON  = ":"; //$NON-NLS-1$
 	public static final String BEGIN_BRACKET  = "["; //$NON-NLS-1$
 	public static final String END_BRACKET  =   "]"; //$NON-NLS-1$
@@ -52,8 +52,14 @@
 	public static final String TOPIC			= "Topic"; //$NON-NLS-1$
 	public static final String NUMERIC_PATH		= "NumericPath"; //$NON-NLS-1$
 
-	public static String getQuotes(String str){
-		return ((str != null)?QUOTE + str + QUOTE:""); //$NON-NLS-1$
+	public static String getQuotes(String str) {
+		if (str == null) {
+			return ""; //$NON-NLS-1$
+		}
+		if (str.indexOf(DOUBLEQUOTE) < 0) {
+			return DOUBLEQUOTE + str + DOUBLEQUOTE;
+		}
+		return DOUBLEQUOTE + str.replaceAll(DOUBLEQUOTE, "\\\\" + DOUBLEQUOTE) + DOUBLEQUOTE; //$NON-NLS-1$
 	}
 
 }
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/AllWebappTests.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/AllWebappTests.java
index 8ec2d1b..fb29123 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/AllWebappTests.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/AllWebappTests.java
@@ -32,7 +32,8 @@
 	HelpServerInterrupt.class,
 	HelpServerBinding.class,
 	HtmlCoderTest.class,
-	TocZipTest.class
+	TocZipTest.class,
+	JsonHelperTests.class
 })
 public class AllWebappTests {
 }
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/JsonHelperTests.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/JsonHelperTests.java
new file mode 100644
index 0000000..6df0223
--- /dev/null
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/JsonHelperTests.java
@@ -0,0 +1,17 @@
+package org.eclipse.ua.tests.help.webapp;
+
+import static org.junit.Assert.assertEquals;
+
+import org.eclipse.help.internal.webapp.utils.JSonHelper;
+import org.junit.Test;
+
+public class JsonHelperTests {
+	@Test
+	public void testQuoted() {
+		assertEquals("\"test\"", JSonHelper.getQuotes("test"));
+		assertEquals("\"test test\"", JSonHelper.getQuotes("test test"));
+		assertEquals("\"test\\\"test\"", JSonHelper.getQuotes("test\"test"));
+		assertEquals("\"\\\"test test\\\"\"", JSonHelper.getQuotes("\"test test\""));
+		assertEquals("\"\\\\\"test test\\\\\"\"", JSonHelper.getQuotes("\\\"test test\\\""));
+	}
+}
