diff --git a/CHANGES.txt b/CHANGES.txt
index b238b3d..2447312 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -3,6 +3,10 @@
 
 ======================= 0.6-dev =====================
 
+CONNECTORS-484: The FileNet connector UI has been broken since
+the i18n work was done on it.
+(Joe Becknell, Karl Wright)
+
 CONNECTORS-472: Make changes related to graduation.
 (Karl Wright)
 
diff --git a/connectors/filenet/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/filenet/FilenetConnector.java b/connectors/filenet/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/filenet/FilenetConnector.java
index 008af8a..c3d3f30 100644
--- a/connectors/filenet/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/filenet/FilenetConnector.java
+++ b/connectors/filenet/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/filenet/FilenetConnector.java
@@ -1884,7 +1884,7 @@
 "{\n"+
 "  if (editjob.pathaddon.value == \"\")\n"+
 "  {\n"+
-"    alert(" + Messages.getBodyJavascriptString(locale,"FilenetConnector.SelectAFolderFirst") + ");\n"+
+"    alert(\"" + Messages.getBodyJavascriptString(locale,"FilenetConnector.SelectAFolderFirst") + "\");\n"+
 "    editjob.pathaddon.focus();\n"+
 "    return;\n"+
 "  }\n"+
@@ -1895,13 +1895,13 @@
 "{\n"+
 "  if (eval(\"editjob.matchfield_\"+docclass+\".value\") == \"\")\n"+
 "  {\n"+
-"    alert(" + Messages.getBodyJavascriptString(locale,"FilenetConnector.SelectAFieldFirst") + ");\n"+
+"    alert(\"" + Messages.getBodyJavascriptString(locale,"FilenetConnector.SelectAFieldFirst") + "\");\n"+
 "    eval(\"editjob.matchfield_\"+docclass+\".focus()\");\n"+
 "    return;\n"+
 "  }\n"+
 "  if (eval(\"editjob.matchtype_\"+docclass+\".value\") == \"\")\n"+
 "  {\n"+
-"    alert(" + Messages.getBodyJavascriptString(locale,"FilenetConnector.SelectAMatchType") + ");\n"+
+"    alert(\"" + Messages.getBodyJavascriptString(locale,"FilenetConnector.SelectAMatchType") + "\");\n"+
 "    eval(\"editjob.matchtype_\"+docclass+\".focus()\");\n"+
 "    return;\n"+
 "  }\n"+
@@ -1913,7 +1913,7 @@
 "{\n"+
 "  if (editjob.spectoken.value == \"\")\n"+
 "  {\n"+
-"    alert(" + Messages.getBodyJavascriptString(locale,"FilenetConnector.NullTokensNotAllowed") + ");\n"+
+"    alert(\"" + Messages.getBodyJavascriptString(locale,"FilenetConnector.NullTokensNotAllowed") + "\");\n"+
 "    editjob.spectoken.focus();\n"+
 "    return;\n"+
 "  }\n"+
@@ -2035,7 +2035,7 @@
 "          <input type=\"button\" value=\"" + Messages.getAttributeString(locale,"FilenetConnector.Add") + "\" alt=\"" + Messages.getAttributeString(locale,"FilenetConnector.AddPath") + "\" onClick='Javascript:SpecOp(\"pathop\",\"Add\",\"path_"+Integer.toString(k+1)+"\")'/>\n"+
 "          &nbsp;"+org.apache.manifoldcf.ui.util.Encoder.bodyEscape(pathSoFar)+"\n"
         );
-        if (pathSoFar.length() > 0)
+        if (pathSoFar.length() > 0 && !pathSoFar.equals("/"))
         {
           out.print(
 "          <input type=\"button\" value=\"-\" alt=\"" + Messages.getAttributeString(locale,"FilenetConnector.RemoveFromPath") + "\" onClick='Javascript:SpecOp(\"pathop\",\"Up\",\"path_"+Integer.toString(k)+"\")'/>\n"
