diff --git a/chrome.manifest b/chrome.manifest
index 70a48c3..935a8a4 100644
--- a/chrome.manifest
+++ b/chrome.manifest
@@ -1,4 +1,4 @@
-content	xulmigemo	jar:chrome/xulmigemo.jar!/content/xulmigemo/
+content	xulmigemo	chrome/content/xulmigemo/
 
 overlay	chrome://browser/content/browser.xul	chrome://xulmigemo/content/browserOverlay.xul
 
@@ -14,14 +14,14 @@ overlay	chrome://browser/content/places/places.xul	chrome://xulmigemo/content/pl
 overlay	chrome://messenger/content/messenger.xul	chrome://xulmigemo/content/mailWindowOverlay.xul
 overlay	chrome://messenger/content/messageWindow.xul	chrome://xulmigemo/content/mailWindowOverlay.xul
 
-locale	xulmigemo	en-US	jar:chrome/xulmigemo.jar!/locale/en-US/xulmigemo/
-locale	xulmigemo-platform	en-US	jar:chrome/xulmigemo.jar!/locale/en-US/xulmigemo/
+locale	xulmigemo	en-US	chrome/locale/en-US/xulmigemo/
+locale	xulmigemo-platform	en-US	chrome/locale/en-US/xulmigemo/
 locale	xulmigemo-platform	en-US	jar:platform/Darwin/chrome/xulmigemo.jar!/locale/en-US/xulmigemo/ os=Darwin
-locale	xulmigemo	ja	jar:chrome/xulmigemo.jar!/locale/ja/xulmigemo/
-locale	xulmigemo-platform	ja	jar:chrome/xulmigemo.jar!/locale/ja/xulmigemo/
+locale	xulmigemo	ja	chrome/locale/ja/xulmigemo/
+locale	xulmigemo-platform	ja	chrome/locale/ja/xulmigemo/
 locale	xulmigemo-platform	ja	jar:platform/Darwin/chrome/xulmigemo.jar!/locale/ja/xulmigemo/ os=Darwin
 
-skin	xulmigemo	classic/1.0	jar:chrome/xulmigemo.jar!/skin/classic/xulmigemo/
+skin	xulmigemo	classic/1.0	chrome/skin/classic/xulmigemo/
 
 resource xulmigemo-modules modules/
 
diff --git a/chrome/content/xulmigemo/config/config.xul b/chrome/content/xulmigemo/config/config.xul
index fb78c38..5f62bc8 100644
--- a/chrome/content/xulmigemo/config/config.xul
+++ b/chrome/content/xulmigemo/config/config.xul
@@ -141,12 +141,6 @@
 		<preference id="xulmigemo.appearance.buttonLabelsMode"
 			name="xulmigemo.appearance.buttonLabelsMode"
 			type="int"/>
-		<preference id="xulmigemo.appearance.findBarPosition"
-			name="xulmigemo.appearance.findBarPosition"
-			type="int"/>
-		<preference id="xulmigemo.appearance.closeButtonPosition"
-			name="xulmigemo.appearance.closeButtonPosition"
-			type="int"/>
 	</preferences>
 
 	<vbox>
@@ -171,35 +165,6 @@
 			</hbox>
 		</radiogroup>
 	</groupbox>
-	<groupbox orient="vertical">
-		<caption label="&config.appearance.findBarPosition;"/>
-		<radiogroup id="xulmigemo.appearance.findBarPosition-radiogroup"
-			preference="xulmigemo.appearance.findBarPosition"
-			orient="horizontal">
-			<radio value="0" label="&config.appearance.findBarPosition.0;"
-				class="image" align="center"
-				src="chrome://xulmigemo/content/res/findbar-belowcontent.png"/>
-			<radio value="1" label="&config.appearance.findBarPosition.1;"
-				class="image" align="center"
-				src="chrome://xulmigemo/content/res/findbar-abovecontent.png"/>
-			<radio value="2" label="&config.appearance.findBarPosition.2;"
-				class="image" align="center"
-				src="chrome://xulmigemo/content/res/findbar-belowtab.png"/>
-		</radiogroup>
-	</groupbox>
-	<groupbox orient="vertical">
-		<caption label="&config.appearance.closeButtonPosition;"/>
-		<radiogroup id="xulmigemo.appearance.closeButtonPosition-radiogroup"
-			preference="xulmigemo.appearance.closeButtonPosition"
-			orient="horizontal">
-			<radio value="0" label="&config.appearance.closeButtonPosition.0;"
-				class="image" align="center"
-				src="chrome://xulmigemo/content/res/close-leftmost.png"/>
-			<radio value="1" label="&config.appearance.closeButtonPosition.1;"
-				class="image" align="center"
-				src="chrome://xulmigemo/content/res/close-rightmost.png"/>
-		</radiogroup>
-	</groupbox>
 	</vbox>
 </prefpane>
 
@@ -582,7 +547,7 @@
 
 	<description flex="1" style="max-width: &config.combination.description.maxwidth;">&config.combination.description;</description>
 
-	<vbox flex="100">
+	<vbox>
 	<groupbox id="combination-places">
 		<caption label="&config.caption.places;"/>
 		<hbox>
@@ -615,7 +580,6 @@
 			preference="xulmigemo.mailnews.threadsearch.enabled"/>
 	</groupbox>
 
-	<spacer flex="100"/>
 	</vbox>
 
 </prefpane>
diff --git a/chrome/content/xulmigemo/highlight/highlight.js b/chrome/content/xulmigemo/highlight/highlight.js
index a5de267..9eb054d 100644
--- a/chrome/content/xulmigemo/highlight/highlight.js
+++ b/chrome/content/xulmigemo/highlight/highlight.js
@@ -52,21 +52,21 @@ var XMigemoHighlight = {
 		else if ('gSearchWP' in window && 'Highlighting' in gSearchWP) {
 			eval('gSearchWP.Highlighting.toggleHighlight = '+gSearchWP.Highlighting.toggleHighlight.toSource().replace(
 				/(\}\)?)$/,
-				<![CDATA[
-					if (XMigemoHighlight.strongHighlight)
-						XMigemoHighlight.toggleHighlightScreen(gSearchWP.Preferences.highlighted);
-				$1]]>
+				"\
+					if (XMigemoHighlight.strongHighlight)\
+						XMigemoHighlight.toggleHighlightScreen(gSearchWP.Preferences.highlighted);\
+				$1"
 			));
 		}
 
 		if (typeof GBL_Listener != 'undefined') { // Googlebar Lite
 			eval('window.GBL_ToggleHighlighting = '+window.GBL_ToggleHighlighting.toSource().replace(
 				'var hb = document.getElementById("GBL-TB-Highlighter");',
-				<![CDATA[
-					var hb = document.getElementById("GBL-TB-Highlighter");
-					if (XMigemoHighlight.strongHighlight)
-						XMigemoHighlight.toggleHighlightScreen(!hb.checked);
-				]]>
+				"\
+					var hb = document.getElementById(\"GBL-TB-Highlighter\");\
+					if (XMigemoHighlight.strongHighlight)\
+						XMigemoHighlight.toggleHighlightScreen(!hb.checked);\
+				"
 			));
 		}
 
@@ -407,14 +407,14 @@ var XMigemoHighlight = {
 		}
 	},
 	domain  : 'xulmigemo',
-	preferences : <><![CDATA[
-		xulmigemo.highlight.showScreen
-		xulmigemo.highlight.hideScreen.restoreButtons
-		xulmigemo.highlight.animateFound
-		xulmigemo.highlight.animationStyle
-		xulmigemo.highlight.animationStyle.0.size
-		xulmigemo.highlight.animationStyle.1.size
-	]]></>.toString(),
+	preferences : "\
+		xulmigemo.highlight.showScreen\
+		xulmigemo.highlight.hideScreen.restoreButtons\
+		xulmigemo.highlight.animateFound\
+		xulmigemo.highlight.animationStyle\
+		xulmigemo.highlight.animationStyle.0.size\
+		xulmigemo.highlight.animationStyle.1.size\
+	",
  
 /* Safari style highlight, dark screen 
 	based on http://kuonn.mydns.jp/fx/SafariHighlight.uc.js
diff --git a/chrome/content/xulmigemo/initializer/downloader.js b/chrome/content/xulmigemo/initializer/downloader.js
index 0af0753..83f51c5 100644
--- a/chrome/content/xulmigemo/initializer/downloader.js
+++ b/chrome/content/xulmigemo/initializer/downloader.js
@@ -57,7 +57,7 @@ var XMigemoFileDownloader = {
 				nsIWebBrowserPersist.PERSIST_FLAGS_BYPASS_CACHE;
 
 		Persist.progressListener = this;
-		Persist.saveURI(source, null, null, null, null, tempFile);
+		Persist.saveURI(source, null, null, null, null, tempFile, null);
 	},
 
 	onComplete : function()
diff --git a/chrome/content/xulmigemo/marker/marker.js b/chrome/content/xulmigemo/marker/marker.js
index 0cd314a..daed393 100644
--- a/chrome/content/xulmigemo/marker/marker.js
+++ b/chrome/content/xulmigemo/marker/marker.js
@@ -348,15 +348,15 @@ var XMigemoMarker = {
 		}
 	},
 	domain  : 'xulmigemo.highlight.foundMarker',
-	preferences : <><![CDATA[
-		xulmigemo.highlight.foundMarker.enabled
-		xulmigemo.highlight.foundMarker.size
-		xulmigemo.highlight.foundMarker.padding
-		xulmigemo.highlight.foundMarker.fill
-		xulmigemo.highlight.foundMarker.stroke
-		xulmigemo.highlight.foundMarker.fill.active
-		xulmigemo.highlight.foundMarker.stroke.active
-	]]></>.toString(),
+	preferences : "\
+		xulmigemo.highlight.foundMarker.enabled\
+		xulmigemo.highlight.foundMarker.size\
+		xulmigemo.highlight.foundMarker.padding\
+		xulmigemo.highlight.foundMarker.fill\
+		xulmigemo.highlight.foundMarker.stroke\
+		xulmigemo.highlight.foundMarker.fill.active\
+		xulmigemo.highlight.foundMarker.stroke.active\
+	",
  
 /* rendering position markers */ 
 	 
diff --git a/chrome/content/xulmigemo/places/bookmarksPanelOverlay.js b/chrome/content/xulmigemo/places/bookmarksPanelOverlay.js
index 75e6f9e..2da802a 100644
--- a/chrome/content/xulmigemo/places/bookmarksPanelOverlay.js
+++ b/chrome/content/xulmigemo/places/bookmarksPanelOverlay.js
@@ -13,14 +13,14 @@ var XMigemoBookmarksPanelOverlay = {
 		eval('tree.applyFilter = '+
 			tree.applyFilter.toSource().replace(
 				'this.load([query], options);',
-				<![CDATA[
-					if (XMigemoService.getPref('xulmigemo.places.bookmarksPanel') &&
-						XMigemoPlaces.isValidInput(query.searchTerms))
-						XMigemoPlaces.startProgressiveLoad(query, options, this,
-							XMigemoPlaces.bookmarksInRangeSQL);
-					else
-						$&
-				]]>
+				"\
+					if (XMigemoService.getPref('xulmigemo.places.bookmarksPanel') &&\
+						XMigemoPlaces.isValidInput(query.searchTerms))\
+						XMigemoPlaces.startProgressiveLoad(query, options, this,\
+							XMigemoPlaces.bookmarksInRangeSQL);\
+					else\
+						$&\
+				"
 			)
 		);
 	}
diff --git a/chrome/content/xulmigemo/places/historyPanelOverlay.js b/chrome/content/xulmigemo/places/historyPanelOverlay.js
index d39f523..6c97831 100644
--- a/chrome/content/xulmigemo/places/historyPanelOverlay.js
+++ b/chrome/content/xulmigemo/places/historyPanelOverlay.js
@@ -13,28 +13,28 @@ var XMigemoHistoryPanelOverlay = {
 		eval('window.searchHistory = '+
 			window.searchHistory.toSource().replace(
 				'gHistoryTree.load([query], options);',
-				<![CDATA[
-					if (XMigemoService.getPref('xulmigemo.places.historyPanel') &&
-						XMigemoPlaces.isValidInput(query.searchTerms))
-						XMigemoPlaces.startProgressiveLoad(query, options, gHistoryTree,
-							XMigemoPlaces.historyInRangeSQL);
-					else
-						$&
-				]]>
+				"\
+					if (XMigemoService.getPref('xulmigemo.places.historyPanel') &&\
+						XMigemoPlaces.isValidInput(query.searchTerms))\
+						XMigemoPlaces.startProgressiveLoad(query, options, gHistoryTree,\
+							XMigemoPlaces.historyInRangeSQL);\
+					else\
+						$&\
+				"
 			)
 		);
 
 		eval('tree.applyFilter = '+
 			tree.applyFilter.toSource().replace(
 				'this.load([query], options);',
-				<![CDATA[
-					if (XMigemoService.getPref('xulmigemo.places.historyPanel') &&
-						XMigemoPlaces.isValidInput(query.searchTerms))
-						XMigemoPlaces.startProgressiveLoad(query, options, this,
-							XMigemoPlaces.historyInRangeSQL);
-					else
-						$&
-				]]>
+				"\
+					if (XMigemoService.getPref('xulmigemo.places.historyPanel') &&\
+						XMigemoPlaces.isValidInput(query.searchTerms))\
+						XMigemoPlaces.startProgressiveLoad(query, options, this,\
+							XMigemoPlaces.historyInRangeSQL);\
+					else\
+						$&\
+				"
 			)
 		);
 	}
diff --git a/chrome/content/xulmigemo/places/locationBarOverlay.js b/chrome/content/xulmigemo/places/locationBarOverlay.js
index 9afe411..5308928 100644
--- a/chrome/content/xulmigemo/places/locationBarOverlay.js
+++ b/chrome/content/xulmigemo/places/locationBarOverlay.js
@@ -302,12 +302,12 @@ var XMigemoLocationBarOverlay = {
 		'xulmigemo.places.locationBar',
 		'browser.urlbar.autocomplete.enabled'
 	],
-	preferences : <![CDATA[
-		xulmigemo.places.locationBar
-		xulmigemo.places.locationBar.delay
-		xulmigemo.places.locationBar.useThread
-		browser.urlbar.autocomplete.enabled
-	]]>.toString(),
+	preferences : "\
+		xulmigemo.places.locationBar\
+		xulmigemo.places.locationBar.delay\
+		xulmigemo.places.locationBar.useThread\
+		browser.urlbar.autocomplete.enabled\
+	",
  
 	handleEvent : function(aEvent) 
 	{
@@ -861,12 +861,12 @@ var XMigemoLocationBarOverlay = {
 	
 	overrideFunctions : function() 
 	{
-		eval('LocationBarHelpers._searchBegin = '+
-			LocationBarHelpers._searchBegin.toSource().replace(
-				/(\}\))?$/,
-				'if (XMigemoLocationBarOverlay.isMigemoActive) XMigemoLocationBarOverlay.onSearchBegin(); $1'
-			)
-		);
+		//eval('LocationBarHelpers._searchBegin = '+
+		//	LocationBarHelpers._searchBegin.toSource().replace(
+		//		/(\}\))?$/,
+		//		'if (XMigemoLocationBarOverlay.isMigemoActive) XMigemoLocationBarOverlay.onSearchBegin(); $1'
+		//	)
+		//);
 
 		var panel = this.panel;
 		eval('panel._appendCurrentResult = '+
diff --git a/chrome/content/xulmigemo/places/organizerOverlay.js b/chrome/content/xulmigemo/places/organizerOverlay.js
index 8377ccb..112d8b2 100644
--- a/chrome/content/xulmigemo/places/organizerOverlay.js
+++ b/chrome/content/xulmigemo/places/organizerOverlay.js
@@ -10,14 +10,14 @@ var XMigemoOrganizerOverlay = {
 		eval('PlacesSearchBox.search = '+
 			PlacesSearchBox.search.toSource().replace(
 				'content.load([query], options)',
-				<![CDATA[
-					if (XMigemoService.getPref('xulmigemo.places.organizer') &&
-						XMigemoPlaces.isValidInput(query.searchTerms))
-						XMigemoPlaces.startProgressiveLoad(query, options, content,
-							XMigemoPlaces.historyInRangeSQL);
-					else
-						$&
-				]]>
+				"\
+					if (XMigemoService.getPref('xulmigemo.places.organizer') &&\
+						XMigemoPlaces.isValidInput(query.searchTerms))\
+						XMigemoPlaces.startProgressiveLoad(query, options, content,\
+							XMigemoPlaces.historyInRangeSQL);\
+					else\
+						$&\
+				"
 			)
 		);
 
@@ -25,22 +25,22 @@ var XMigemoOrganizerOverlay = {
 		eval('tree.applyFilter = '+
 			tree.applyFilter.toSource().replace(
 				'this.load([query], options);',
-				<![CDATA[
-					if (XMigemoService.getPref('xulmigemo.places.organizer') &&
-						XMigemoPlaces.isValidInput(query.searchTerms)) {
-						XMigemoPlaces.startProgressiveLoad(query, options, this,
-							options.queryType == Ci.nsINavHistoryQueryOptions.QUERY_TYPE_HISTORY ?
-								XMigemoPlaces.historyInRangeSQL :
-								XMigemoPlaces.bookmarksInRangeSQL,
-							XMigemoOrganizerOverlay.saveCommand
-						);
-					}
-					else {
-						if (XMigemoOrganizerOverlay.saveCommand)
-							XMigemoOrganizerOverlay.saveCommand.removeAttribute('disabled');
-						$&
-					}
-				]]>
+				"\
+					if (XMigemoService.getPref('xulmigemo.places.organizer') &&\
+						XMigemoPlaces.isValidInput(query.searchTerms)) {\
+						XMigemoPlaces.startProgressiveLoad(query, options, this,\
+							options.queryType == Ci.nsINavHistoryQueryOptions.QUERY_TYPE_HISTORY ?\
+								XMigemoPlaces.historyInRangeSQL :\
+								XMigemoPlaces.bookmarksInRangeSQL,\
+							XMigemoOrganizerOverlay.saveCommand\
+						);\
+					}\
+					else {\
+						if (XMigemoOrganizerOverlay.saveCommand)\
+							XMigemoOrganizerOverlay.saveCommand.removeAttribute('disabled');\
+						$&\
+					}\
+				"
 			)
 		);
 	},
diff --git a/chrome/content/xulmigemo/tabPreviews.js b/chrome/content/xulmigemo/tabPreviews.js
index 935b3ce..f0459cd 100644
--- a/chrome/content/xulmigemo/tabPreviews.js
+++ b/chrome/content/xulmigemo/tabPreviews.js
@@ -22,14 +22,14 @@ var XMigemoTabPreviews = {
 		var getter = ctrlTab.__lookupGetter__('tabList');
 		eval('getter = '+getter.toSource().replace(
 			'if (this.searchField.value) {',
-			<![CDATA[
-				if (this.searchField.value &&
-					XMigemoTabPreviews.enabled &&
-					migemo.isValidFunctionalInput(this.searchField.value)) {
-					list = XMigemoTabPreviews.filterListFromInput(list, this.searchField.value);
-				}
-				else $&
-			]]>.toString()
+			"\
+				if (this.searchField.value &&\
+					XMigemoTabPreviews.enabled &&\
+					migemo.isValidFunctionalInput(this.searchField.value)) {\
+					list = XMigemoTabPreviews.filterListFromInput(list, this.searchField.value);\
+				}\
+				else $&\
+			"
 		));
 		ctrlTab.__defineGetter__('tabList', getter);
 	},
@@ -96,9 +96,9 @@ var XMigemoTabPreviews = {
 		}
 	},
 	domain  : 'xulmigemo.ctrlTab',
-	preferences : <><![CDATA[
-		xulmigemo.ctrlTab.enabled
-	]]></>.toString(),
+	preferences : "\
+		xulmigemo.ctrlTab.enabled\
+	",
   
 	dummy : null
 }; 
diff --git a/chrome/content/xulmigemo/ui.js b/chrome/content/xulmigemo/ui.js
index d33b0f4..b781e86 100644
--- a/chrome/content/xulmigemo/ui.js
+++ b/chrome/content/xulmigemo/ui.js
@@ -118,21 +118,6 @@ var XMigemoUI = {
 	kLABELS_HIDE : 2,
 	buttonLabelsMode : 1,
  
-	kCLOSEBUTTON_POSITION_LEFTMOST : 0, 
-	kCLOSEBUTTON_POSITION_RIGHTMOST : 1,
-	closeButtonPosition : 0,
-	lastCloseButtonPosition : 0,
- 
-	kFINDBAR_POSITION_BELOW_CONTENT : 0, 
-	kFINDBAR_POSITION_ABOVE_CONTENT : 1,
-	kFINDBAR_POSITION_BELOW_TABS    : 2,
-	findBarPositionAttrValues : [
-		'belowcontent',
-		'abovecontent',
-		'belowtabbar'
-	],
-	findBarPosition : 0,
-
 	get highlightSelectionOnly()
 	{
 		return this.highlightSelectionAvailable &&
@@ -203,30 +188,6 @@ var XMigemoUI = {
 	},
 	_findBar : null,
 	
-	get findBarItems() 
-	{
-		var node = this.closeButton;
-		var items = [];
-		do {
-			items.push(node);
-			node = node.nextSibling;
-		}
-		while (node);
-		return items;
-	},
- 
-	get closeButton() 
-	{
-		if (this._closeButton === void(0)) {
-			this._closeButton = document.getElementById('find-closebutton');
-			if (!this._closeButton && this.findBar) {
-				this._closeButton = this.findBar.getElement('find-closebutton');
-			}
-		}
-		return this._closeButton;
-	},
-//	_closeButton : null,
- 
 	get label() 
 	{
 		if (this._label === void(0)) {
@@ -684,40 +645,39 @@ var XMigemoUI = {
 	
 	domain  : 'xulmigemo', 
  
-	preferences : <![CDATA[ 
-		xulmigemo.autostart
-		xulmigemo.autostart.regExpFind
-		xulmigemo.enableautoexit.inherit
-		xulmigemo.enableautoexit.nokeyword
-		xulmigemo.checked_by_default.highlight.always
-		xulmigemo.checked_by_default.highlight.always.minLength
-		xulmigemo.checked_by_default.caseSensitive
-		xulmigemo.findMode.always
-		xulmigemo.enabletimeout
-		xulmigemo.enabletimeout.indicator
-		xulmigemo.timeout
-		xulmigemo.timeout.stopWhileScrolling
-		xulmigemo.shortcut.findForward
-		xulmigemo.shortcut.findBackward
-		xulmigemo.shortcut.manualStart
-		xulmigemo.shortcut.manualStart2
-		xulmigemo.shortcut.manualStartLinksOnly
-		xulmigemo.shortcut.manualStartLinksOnly2
-		xulmigemo.shortcut.goDicManager
-		xulmigemo.shortcut.manualExit
-		xulmigemo.shortcut.modeCirculation
-		xulmigemo.disableIME.quickFindFor
-		xulmigemo.disableIME.normalFindFor
-		xulmigemo.find_delay
-		xulmigemo.ignore_find_links_only_behavior
-		xulmigemo.prefillwithselection
-		xulmigemo.work_for_any_xml_document
-	]]>.toString(),
-	preferencesFindBar : <![CDATA[ 
-		xulmigemo.appearance.buttonLabelsMode
-		xulmigemo.appearance.indicator.height
-		xulmigemo.appearance.closeButtonPosition
-	]]>.toString(),
+	preferences : "\
+		xulmigemo.autostart\
+		xulmigemo.autostart.regExpFind\
+		xulmigemo.enableautoexit.inherit\
+		xulmigemo.enableautoexit.nokeyword\
+		xulmigemo.checked_by_default.highlight.always\
+		xulmigemo.checked_by_default.highlight.always.minLength\
+		xulmigemo.checked_by_default.caseSensitive\
+		xulmigemo.findMode.always\
+		xulmigemo.enabletimeout\
+		xulmigemo.enabletimeout.indicator\
+		xulmigemo.timeout\
+		xulmigemo.timeout.stopWhileScrolling\
+		xulmigemo.shortcut.findForward\
+		xulmigemo.shortcut.findBackward\
+		xulmigemo.shortcut.manualStart\
+		xulmigemo.shortcut.manualStart2\
+		xulmigemo.shortcut.manualStartLinksOnly\
+		xulmigemo.shortcut.manualStartLinksOnly2\
+		xulmigemo.shortcut.goDicManager\
+		xulmigemo.shortcut.manualExit\
+		xulmigemo.shortcut.modeCirculation\
+		xulmigemo.disableIME.quickFindFor\
+		xulmigemo.disableIME.normalFindFor\
+		xulmigemo.find_delay\
+		xulmigemo.ignore_find_links_only_behavior\
+		xulmigemo.prefillwithselection\
+		xulmigemo.work_for_any_xml_document\
+	",
+	preferencesFindBar : "\
+		xulmigemo.appearance.buttonLabelsMode\
+		xulmigemo.appearance.indicator.height\
+	",
  
 	observe : function(aSubject, aTopic, aPrefName) 
 	{
@@ -832,11 +792,6 @@ var XMigemoUI = {
 				this.updateIndicatorHeight(value);
 				return;
 
-			case 'xulmigemo.appearance.closeButtonPosition':
-				this.closeButtonPosition = value;
-				this.findBarInitialShown = false;
-				return;
-
 			case 'xulmigemo.disableIME.quickFindFor':
 				this.disableIMEOnQuickFindFor = value;
 				return;
@@ -934,7 +889,6 @@ var XMigemoUI = {
 			case 'XMigemoFindBarUpdateRequest':
 				if (this.updatingFindBar) return;
 				this.updatingFindBar = true;
-				this.updateFloatingFindBarAppearance(aEvent);
 				this.onChangeFindBarSize(aEvent);
 				window.setTimeout(function(aSelf) {
 					aSelf.updatingFindBar = false;
@@ -946,19 +900,11 @@ var XMigemoUI = {
 			case 'SubBrowserAdded':
 			case 'SubBrowserRemoved':
 			case 'SubBrowserContentCollapsed':
-				if (this.findBarPosition != this.kFINDBAR_POSITION_BELOW_TABS)
-					return;
-				gFindBar.close();
-				window.setTimeout('gFindBar.open();', 100);
 				return;
 
 			case 'SubBrowserFocusMoved':
 				XMigemoFind.target = this.activeBrowser;
 				this.findBar.setAttribute(this.kTARGET, this.activeBrowser.id || 'subbrowser');
-				if (this.findBarPosition != this.kFINDBAR_POSITION_BELOW_TABS)
-					return;
-				gFindBar.close();
-				window.setTimeout('gFindBar.open();', 100);
 				return;
 
 			default:
@@ -1302,20 +1248,22 @@ var XMigemoUI = {
  
 	onXMigemoFindProgress : function(aEvent) 
 	{
+		var detail = aEvent.detail;
+
 		var statusRes = (
 				 XMigemoFind.isLinksOnly ?
-				 	aEvent.resultFlag & XMigemoFind.FOUND_IN_LINK :
-					aEvent.resultFlag & XMigemoFind.FOUND
+				 	detail.resultFlag & XMigemoFind.FOUND_IN_LINK :
+					detail.resultFlag & XMigemoFind.FOUND
 			) ?
 				this.nsITypeAheadFind.FIND_FOUND :
-			(aEvent.resultFlag & XMigemoFind.WRAPPED) ?
+			(detail.resultFlag & XMigemoFind.WRAPPED) ?
 				this.nsITypeAheadFind.FIND_WRAPPED :
 				this.nsITypeAheadFind.FIND_NOTFOUND;
 
 		var found = (statusRes == this.nsITypeAheadFind.FIND_FOUND || statusRes == this.nsITypeAheadFind.FIND_WRAPPED);
 		gFindBar._enableFindButtons(this.findTerm);
-		if (this.lastHighlightedKeyword != aEvent.findTerm) {
-			this.lastHighlightedKeyword = aEvent.findTerm;
+		if (this.lastHighlightedKeyword != detail.findTerm) {
+			this.lastHighlightedKeyword = detail.findTerm;
 			if (found && this.highlightCheck.checked)
 				gFindBar._setHighlightTimeout();
 		}
@@ -1326,7 +1274,7 @@ var XMigemoUI = {
 			if (link) link.setAttribute(this.kFOCUSED, true);
 		}
 
-		gFindBar._updateStatusUI(statusRes, !(aEvent.findFlag & XMigemoFind.FIND_BACK));
+		gFindBar._updateStatusUI(statusRes, !(detail.findFlag & XMigemoFind.FIND_BACK));
 	},
 	lastHighlightedKeyword : null,
  
@@ -1370,11 +1318,6 @@ var XMigemoUI = {
 	onChangeFindBarSize : function(aEvent) 
 	{
 		var shouldUpdatePosition = false;
-		if (this.findBarPosition == this.kFINDBAR_POSITION_BELOW_TABS &&
-			this.lastTargetBox) {
-			this.setFloatingFindBarWidth(this.lastTargetBox.boxObject.width, aEvent);
-			shouldUpdatePosition = true;
-		}
 		if (this.buttonLabelsMode == this.kLABELS_AUTO) {
 			this.showHideLabels(true);
 			var box = this.caseSensitiveCheck.boxObject;
@@ -1486,7 +1429,6 @@ var XMigemoUI = {
 	onFindBarOpen : function(aEvent) 
 	{
 		this.updateItemOrder();
-		this.updateFindBarAppearance();
 		this.updateModeSelectorPosition(true);
 		if (this.lastWindowWidth != window.innerWidth) {
 			this.onChangeFindBarSize();
@@ -1507,34 +1449,6 @@ var XMigemoUI = {
 	{
 		if (this.findBarInitialShown) return;
 		this.findBarInitialShown = true;
-		if (this.findBarPosition == this.kFINDBAR_POSITION_BELOW_CONTENT &&
-			this.closeButtonPosition == this.kCLOSEBUTTON_POSITION_LEFTMOST)
-			return;
-		window.setTimeout(function(aSelf) {
-			var items = aSelf.findBarItems;
-			items = items.sort(function(aA, aB) {
-					return parseInt(aA.ordinal) - parseInt(aB.ordinal);
-				}).filter(function(aItem) {
-					return aItem.boxObject.x;
-				});
-			var wrongOrder = false;
-			for (var i = 0, maxi = items.length-1; i < maxi; i++)
-			{
-				if (items[i].boxObject.x < items[i+1].boxObject.x)
-					continue;
-				wrongOrder = true;
-				break;
-			}
-			if (!wrongOrder) return;
-
-			aSelf.findBar.hidden = true;
-			window.setTimeout(function(aSelf) {
-				aSelf.findBar.hidden = false;
-				window.setTimeout(function(aSelf) {
-					aSelf.field.focus();
-				}, 0, aSelf);
-			}, 0, aSelf);
-		}, 0, this);
 	},
  
 	doPrefillWithSelection : function(aShowMinimalUI) 
@@ -1839,17 +1753,7 @@ var XMigemoUI = {
  
 	updateItemOrder : function(aPosition) 
 	{
-		if (this.closeButtonPosition == this.lastCloseButtonPosition) return;
-		this.lastCloseButtonPosition = this.closeButtonPosition;
-
-		var items = this.findBarItems;
-		var closebox = items.shift();
-		closebox.ordinal = (this.closeButtonPosition == this.kCLOSEBUTTON_POSITION_RIGHTMOST) ?
-				(items.length + 2) * 100 :
-				1 ;
-		items.forEach(function(aItem, aIndex) {
-			aItem.ordinal = (aIndex + 1) * 100;
-		});
+       // deleted
 	},
  
 	updateModeSelectorPosition : function(aForceUpdate) 
@@ -1869,105 +1773,18 @@ var XMigemoUI = {
 				document.documentElement.boxObject.width
 				- findBarBox.x
 				- findBarBox.width
-				+ (
-					(this.closeButtonPosition == this.kCLOSEBUTTON_POSITION_RIGHTMOST) ?
-						this.closeButton.boxObject.width + this.rightMostOffset :
-						0
-				)
 			)+'px';
-		box.style.top = (this.findBarPosition == this.kFINDBAR_POSITION_BELOW_CONTENT) ?
-			'auto' :
-			this.findBar.boxObject.y+'px' ;
-		box.style.bottom = (this.findBarPosition == this.kFINDBAR_POSITION_BELOW_CONTENT) ?
+		box.style.top = 'auto';
+		box.style.bottom =
 			(
 				document.documentElement.boxObject.height
 				- findBarBox.y
 				- findBarBox.height
-			)+'px' :
-			'auto' ;
+			)+'px';
 		box.lastBaseState = baseState;
 	},
 	rightMostOffset : 5,
  
-	updateFindBarPosition : function() 
-	{
-		this.findBarPosition = XMigemoService.getPref('xulmigemo.appearance.findBarPosition');
-		if (this.findBarPosition < 0 || this.findBarPosition >= this.findBarPositionAttrValues.length)
-			this.findBarPosition = this.kFINDBAR_POSITION_BELOW_CONTENT;
-
-		if ('XMigemoMail' in window && this.findBarPosition == this.kFINDBAR_POSITION_BELOW_TABS)
-			this.findBarPosition = this.kFINDBAR_POSITION_ABOVE_CONTENT;
-
-		var bar = this.findBar;
-		bar.setAttribute(this.kFINDBAR_POSITION, this.findBarPositionAttrValues[this.findBarPosition]);
-
-		if (this.findBarPosition != this.kFINDBAR_POSITION_ABOVE_CONTENT) return;
-
-		var contentArea = document.getElementById('browser') || // Firefox
-					document.getElementById('messagepane'); // Thunderbird
-		contentArea.parentNode.insertBefore(bar, contentArea);
-	},
- 
-	updateFindBarAppearance : function() 
-	{
-		if (this.findBarPosition != this.kFINDBAR_POSITION_BELOW_TABS &&
-			this.findBarPosition != this.kFINDBAR_POSITION_ABOVE_CONTENT)
-			return;
-
-		this.cleanUpOnFindBarHidden()
-
-		var floating = (this.findBarPosition == this.kFINDBAR_POSITION_BELOW_TABS);
-		if (floating) {
-			this.updateFloatingFindBarAppearance();
-			this.onChangeFindBarSize();
-		}
-
-		var height = this.findBar.boxObject.height;
-
-		var target = this.target;
-		var targetBox = this.targetBox;
-		if (floating) targetBox.style.paddingTop = height+'px';
-		target.contentWindow.scrollBy(0, height);
-
-		this.lastTarget = target;
-		this.lastTargetBox = targetBox;
-		this.contentAreaYOffset = height;
-	},
- 
-	cleanUpOnFindBarHidden : function() 
-	{
-		if (!this.lastTarget) return;
-		switch (this.findBarPosition)
-		{
-			case this.kFINDBAR_POSITION_BELOW_TABS:
-				this.lastTargetBox.style.paddingTop = 0;
-
-			case this.kFINDBAR_POSITION_ABOVE_CONTENT:
-				this.lastTarget.contentWindow.scrollBy(0, -this.contentAreaYOffset);
-				this.lastTarget = null;
-				this.lastTargetBox = null;
-				this.contentAreaYOffset = 0;
-				return;
-
-			default:
-				return;
-		}
-	},
- 
-	updateFloatingFindBarAppearance : function(aEvent) 
-	{
-		if (this.findBarPosition != this.kFINDBAR_POSITION_BELOW_TABS) return;
-
-		var bar = this.findBar;
-		var target = this.targetBox;
-
-		bar.style.position = 'fixed';
-		bar.style.top = target.boxObject.y+'px';
-		bar.style.left = target.boxObject.x+'px';
-
-		this.setFloatingFindBarWidth(target.boxObject.width, aEvent);
-	},
-	
 	setFloatingFindBarWidth : function(aWidth, aEvent) 
 	{
 		if (aEvent &&
@@ -2055,10 +1872,10 @@ var XMigemoUI = {
 		eval('gFindBar._highlightDoc = '+gFindBar._highlightDoc.toSource()
 			.replace(
 				/((?:var|let) win = [^;]+;)/,
-				<![CDATA[$1
-					if (!aWord || aWord != this._lastHighlightString)
-						XMigemoUI.clearHighlight(win.document);
-				]]>.toString()
+				"$1\
+					if (!aWord || aWord != this._lastHighlightString)\
+						XMigemoUI.clearHighlight(win.document);\
+				"
 			).replace(
 				'return textFound;',
 				'XMigemoUI.clearHighlight(win.document); $&'
@@ -2073,18 +1890,18 @@ var XMigemoUI = {
 				'XMigemoUI.getDocumentBody(doc)'
 			).replace(
 				'var retRange = null;',
-				<![CDATA[
-					if (XMigemoUI.isActive || !XMigemoUI.highlightSelectionOnly) {
-						if (XMigemoUI.highlightText(aHighlight, aWord, null, this._searchRange)) {
-							this._lastHighlightString = aWord;
-							return true;
-						}
-						else {
-							return false;
-						}
-					}
-					$&
-				]]>.toString()
+				"\
+					if (XMigemoUI.isActive || !XMigemoUI.highlightSelectionOnly) {\
+						if (XMigemoUI.highlightText(aHighlight, aWord, null, searchRange)) {\
+							this._lastHighlightString = aWord;\
+							return true;\
+						}\
+						else {\
+							return false;\
+						}\
+					}\
+					$&\
+				"
 			)
 		);
 		eval('gFindBar.xmigemoOriginalToggleHighlight = '+gFindBar.xmigemoOriginalToggleHighlight.toSource()
@@ -2121,18 +1938,18 @@ var XMigemoUI = {
 			gFindBar._setHighlightTimeout.toSource()
 			.replace(
 				/^(\(?function)([^\(]*)\(\) \{/,
-				<![CDATA[$1$2(aAutoChecked) {
-					if (XMigemoUI.findTerm == XMigemoUI.activeBrowser.contentDocument.documentElement.getAttribute(XMigemoUI.kLAST_HIGHLIGHT))
-						return;
-				]]>
+				"$1$2(aAutoChecked) {\
+					if (XMigemoUI.findTerm == XMigemoUI.activeBrowser.contentDocument.documentElement.getAttribute(XMigemoUI.kLAST_HIGHLIGHT))\
+						return;\
+				"
 			).replace(
 				/(\w+\.toggleHighlight\(false)(\);)/,
-				<![CDATA[
-					var checked = !XMigemoUI.highlightCheck.disabled && XMigemoUI.highlightCheck.checked;
-					$1, false, true$2
-					if (checked)
-						XMigemoUI.textUtils.setSelectionLook(XMigemoUI.activeBrowser.contentDocument, true);
-				]]>
+				"\
+					var checked = !XMigemoUI.highlightCheck.disabled && XMigemoUI.highlightCheck.checked;\
+					$1, false, true$2\
+					if (checked)\
+						XMigemoUI.textUtils.setSelectionLook(XMigemoUI.activeBrowser.contentDocument, true);\
+				"
 			).replace(
 				/(\b[^\.]+\.toggleHighlight\(true)(\);)/,
 				'$1, !checked$2'
@@ -2266,7 +2083,6 @@ var XMigemoUI = {
 			XMigemoUI.findModeSelectorBox.setAttribute('hidden', true);
 			XMigemoUI.findMigemoBar.setAttribute('collapsed', true);
 		}
-		XMigemoUI.cleanUpOnFindBarHidden();
 
 		var event = document.createEvent('Events');
 		event.initEvent('XMigemoFindBarClose', true, false);
@@ -2399,11 +2215,11 @@ var XMigemoUI = {
 		var color = this.highlightSelectionAvailable ?
 				'' :
 				'color: black; background-color: yellow;' ;
-		node.setAttribute('style', color + <![CDATA[
-			display: inline;
-			font-size: inherit;
-			padding: 0;
-		]]>.toString());
+		node.setAttribute('style', color + "\
+			display: inline;\
+			font-size: inherit;\
+			padding: 0;\
+		");
 		node.className = '__mozilla-findbar-search';
 		this.updateHighlightNode(node);
 		return node;
@@ -2411,28 +2227,28 @@ var XMigemoUI = {
  
 	updateHighlightNode : function(aNode) 
 	{
-		aNode.setAttribute('onmousedown', <><![CDATA[
-			try {
-				var xpathResult = this.ownerDocument.evaluate(
-						'ancestor::*[contains(" INPUT input TEXTAREA textarea ", concat(" ", local-name(), " "))]',
-						this,
-						null,
-						XPathResult.FIRST_ORDERED_NODE_TYPE,
-						null
-					);
-				if (!xpathResult.singleNodeValue) return;
-			}
-			catch(e) {
-				// permission denied, then this is in the input area!
-			}
-			var range = document.createRange();
-			range.selectNodeContents(this);
-			var contents = range.extractContents(true);
-			range.selectNode(this);
-			range.deleteContents();
-			range.insertNode(contents);
-			range.detach();
-		]]></>);
+		aNode.setAttribute('onmousedown', "\
+			try {\
+				var xpathResult = this.ownerDocument.evaluate(\
+						'ancestor::*[contains(\" INPUT input TEXTAREA textarea \", concat(\" \", local-name(), \" \"))]',\
+						this,\
+						null,\
+						XPathResult.FIRST_ORDERED_NODE_TYPE,\
+						null\
+					);\
+				if (!xpathResult.singleNodeValue) return;\
+			}\
+			catch(e) {\
+				// permission denied, then this is in the input area!\
+			}\
+			var range = document.createRange();\
+			range.selectNodeContents(this);\
+			var contents = range.extractContents(true);\
+			range.selectNode(this);\
+			range.deleteContents();\
+			range.insertNode(contents);\
+			range.detach();\
+		");
 
 		XMigemoService.ObserverService.notifyObservers(aNode, 'XMigemo:highlightNodeReaday', null);
 	},
@@ -2688,7 +2504,6 @@ if (typeof window.gFindBar == 'undefined') {
 		this.findBar.addEventListener('XMigemoFindBarOpen', this, false);
 		this.findBar.addEventListener('XMigemoFindBarClose', this, false);
 
-		this.updateFindBarPosition();
 		this.updateItemOrder();
 		this.overrideFindBar();
 		XMigemoService.firstListenPrefChange(this, this.preferencesFindBar);
diff --git a/chrome/locale/en-US/xulmigemo/xulmigemo.dtd b/chrome/locale/en-US/xulmigemo/xulmigemo.dtd
index 32b7189..0be7481 100644
--- a/chrome/locale/en-US/xulmigemo/xulmigemo.dtd
+++ b/chrome/locale/en-US/xulmigemo/xulmigemo.dtd
@@ -46,13 +46,6 @@
 <!ENTITY config.appearance.buttonLabelsMode.0 "Full size">
 <!ENTITY config.appearance.buttonLabelsMode.1 "Auto fit to width">
 <!ENTITY config.appearance.buttonLabelsMode.2 "Compact size">
-<!ENTITY config.appearance.findBarPosition "Find Toolbar Position (require restart)">
-<!ENTITY config.appearance.findBarPosition.0 "Bottom">
-<!ENTITY config.appearance.findBarPosition.1 "Top">
-<!ENTITY config.appearance.findBarPosition.2 "Below Tab Bar">
-<!ENTITY config.appearance.closeButtonPosition "&quot;Close&quot; Button Position">
-<!ENTITY config.appearance.closeButtonPosition.0 "Leftmost">
-<!ENTITY config.appearance.closeButtonPosition.1 "Rightmost">
 
 
 
diff --git a/chrome/locale/ja/xulmigemo/xulmigemo.dtd b/chrome/locale/ja/xulmigemo/xulmigemo.dtd
index 3dfb0f0..c2f7eca 100644
--- a/chrome/locale/ja/xulmigemo/xulmigemo.dtd
+++ b/chrome/locale/ja/xulmigemo/xulmigemo.dtd
@@ -46,13 +46,6 @@
 <!ENTITY config.appearance.buttonLabelsMode.0 "フルサイズで表示">
 <!ENTITY config.appearance.buttonLabelsMode.1 "幅に合わせて自動で変更">
 <!ENTITY config.appearance.buttonLabelsMode.2 "小さく表示">
-<!ENTITY config.appearance.findBarPosition "検索ツールバーの位置（再起動後から有効）">
-<!ENTITY config.appearance.findBarPosition.0 "下">
-<!ENTITY config.appearance.findBarPosition.1 "上">
-<!ENTITY config.appearance.findBarPosition.2 "タブの下">
-<!ENTITY config.appearance.closeButtonPosition "「閉じる」ボタンの位置">
-<!ENTITY config.appearance.closeButtonPosition.0 "左端">
-<!ENTITY config.appearance.closeButtonPosition.1 "右端">
 
 
 
@@ -122,7 +115,7 @@
 
 
 <!ENTITY config.tab.combination         "連携">
-<!ENTITY config.combination.description "対応するアプリケーションやアドオンの各機能で、XUL/Migemoによる辞書アシスト検索（ローマ字入力での日本語検索など）を利用できます。">
+<!ENTITY config.combination.description "各機能で、XUL/Migemoによる辞書アシスト検索を利用できます。">
 <!ENTITY config.combination.description.maxwidth "40em">
 
 <!ENTITY config.caption.places        "履歴とブックマークの検索で有効にする">
diff --git a/components/xmXMigemoFind.js b/components/xmXMigemoFind.js
index d777d6d..54ff662 100644
--- a/components/xmXMigemoFind.js
+++ b/components/xmXMigemoFind.js
@@ -450,12 +450,13 @@ mydump("findInDocument ==========================================");
  
 	dispatchProgressEvent : function(aFindFlag, aResultFlag) 
 	{
-		var event = this.document.createEvent('Events');
-		event.initEvent('XMigemoFindProgress', true, false);
-		event.resultFlag = aResultFlag;
-		event.findFlag   = aFindFlag;
-		event.findTerm   = this.lastKeyword;
-		event.foundTerm  = aResultFlag & this.FOUND ? this.lastFoundWord : null ;
+		var event = this.document.createEvent('CustomEvent');
+		event.initCustomEvent('XMigemoFindProgress', true, false, {
+			resultFlag : aResultFlag,
+			findFlag   : aFindFlag,
+			findTerm   : this.lastKeyword,
+			foundTerm  : aResultFlag & this.FOUND ? this.lastFoundWord : null
+		});
 		this.document.dispatchEvent(event);
 	},
   
diff --git a/defaults/preferences/xulmigemo.js b/defaults/preferences/xulmigemo.js
index f8446ad..28cee69 100644
--- a/defaults/preferences/xulmigemo.js
+++ b/defaults/preferences/xulmigemo.js
@@ -67,10 +67,6 @@ pref("xulmigemo.enabletimeout.indicator",       true);
 // 0 = always show labels, 1 = auto, 2 = always hide labels
 pref("xulmigemo.appearance.buttonLabelsMode",   1);
 pref("xulmigemo.appearance.indicator.height",   5);
-// 0 = leftmost, 1 = rightmost
-pref("xulmigemo.appearance.closeButtonPosition", 0);
-// 0 = below content area, 1 = above content area, 2 = between tab bar and content area
-pref("xulmigemo.appearance.findBarPosition", 0);
 
 pref("xulmigemo.shortcut.manualStart",           "/");
 pref("xulmigemo.shortcut.manualStart2",          "Accel+Shift+F");
diff --git a/install.rdf b/install.rdf
index c0f75a4..26dad9e 100644
--- a/install.rdf
+++ b/install.rdf
@@ -1,57 +1,58 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<RDF:RDF xmlns:em="http://www.mozilla.org/2004/em-rdf#"
-         xmlns:NC="http://home.netscape.com/NC-rdf#"
-         xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
-  <RDF:Description RDF:about="urn:mozilla:install-manifest"
-                   em:id="{01F8DAE3-FCF4-43D6-80EA-1223B2A9F025}"
-                   em:name="XUL/Migemo"
-                   em:version="0.13.6mod4"
-                   em:description="Provides advanced incremental search for any language."
-                   em:homepageURL="http://piro.sakura.ne.jp/xul/xulmigemo/"
-                   em:optionsURL="chrome://xulmigemo/content/config/config.xul"
-                   em:iconURL="chrome://xulmigemo/content/icon.png">
-	<em:creator>plus7, SHIMODA Hiroshi</em:creator>
-	<em:contributor>alice0775 0.13.6mod4</em:contributor>
-	<em:contributor>Dear Periwinkle</em:contributor>
-
-
-
-
-
-
-    <em:localized>
-      <RDF:Description em:locale="en-US"
-                       em:name="XUL/Migemo"
-                       em:description="This provides advanced incremental search. You can find Japanese words incremental with roman input, like the Migemo."
-                       em:homepageURL="http://piro.sakura.ne.jp/xul/_xulmigemo.html.en">
-		<em:creator>plus7, SHIMODA Hiroshi</em:creator>
-		<em:contributor>alice0775</em:contributor>
-		<em:contributor>Dear Periwinkle</em:contributor>
-      </RDF:Description>
-    </em:localized>
-    <em:localized>
-      <RDF:Description em:locale="ja"
-                       em:name="XUL/Migemo"
-                       em:description="Migemo風のローマ字入力による日本語逐次検索など、より高機能なインクリメンタル検索機能を提供します。"
-                       em:homepageURL="http://piro.sakura.ne.jp/xul/_xulmigemo.html">
-		<em:creator>plus7, SHIMODA Hiroshi</em:creator>
-		<em:contributor>alice0775</em:contributor>
-		<em:contributor>Dear Periwinkle</em:contributor>
-      </RDF:Description>
-    </em:localized>
-
-
-	<em:targetApplication>
-      <!-- Firefox -->
-	  <RDF:Description em:id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
-	                   em:minVersion="3.6"
-	                   em:maxVersion="8.*" />
-    </em:targetApplication>
-    <em:targetApplication>
-      <!-- Thunderbird -->
-	  <RDF:Description em:id="{3550f703-e582-4d05-9a08-453d09bdfdc6}"
-	                   em:minVersion="3.0"
-	                   em:maxVersion="3.1.*" />
-	</em:targetApplication>
-  </RDF:Description>
-</RDF:RDF>
+<?xml version="1.0" encoding="UTF-8"?>
+<RDF:RDF xmlns:em="http://www.mozilla.org/2004/em-rdf#"
+         xmlns:NC="http://home.netscape.com/NC-rdf#"
+         xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <RDF:Description RDF:about="urn:mozilla:install-manifest"
+                   em:id="{01F8DAE3-FCF4-43D6-80EA-1223B2A9F025}"
+                   em:name="XUL/Migemo"
+                   em:version="0.13.7-20130406"
+                   em:description="Provides advanced incremental search for any language."
+                   em:homepageURL="http://piro.sakura.ne.jp/xul/xulmigemo/"
+                   em:optionsURL="chrome://xulmigemo/content/config/config.xul"
+                   em:iconURL="chrome://xulmigemo/content/icon.png">
+	<em:creator>plus7, SHIMODA Hiroshi</em:creator>
+	<em:contributor>Kyosuke Takayama</em:contributor>
+	<em:contributor>alice0775</em:contributor>
+	<em:contributor>Dear Periwinkle</em:contributor>
+
+
+    <em:updateURL>http://piro.sakura.ne.jp/xul/update.rdf</em:updateURL>
+    <em:updateKey>MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLI43lgUhWE0E7bfiuTrQMKIP53KM3w71VEPc9FxE7YS3Hpr85dC/GgEUDPd6xD7UP7ckzEusN49LCAKoipepxgyAWzQjZ3CzvkD7PWsZFTi7lpj9ytYDysoFwHs0L96i5oiVopNj1NQM2AC0Y5Lr0b6lz2L5ece0/z6monpZXPQIDAQAB</em:updateKey>
+
+
+    <em:localized>
+      <RDF:Description em:locale="en-US"
+                       em:name="XUL/Migemo"
+                       em:description="This provides advanced incremental search. You can find Japanese words incremental with roman input, like the Migemo."
+                       em:homepageURL="http://piro.sakura.ne.jp/xul/_xulmigemo.html.en">
+		<em:creator>plus7, SHIMODA Hiroshi</em:creator>
+		<em:contributor>alice0775</em:contributor>
+		<em:contributor>Dear Periwinkle</em:contributor>
+      </RDF:Description>
+    </em:localized>
+    <em:localized>
+      <RDF:Description em:locale="ja"
+                       em:name="XUL/Migemo"
+                       em:description="Migemo風のローマ字入力による日本語逐次検索など、より高機能なインクリメンタル検索機能を提供します。"
+                       em:homepageURL="http://piro.sakura.ne.jp/xul/_xulmigemo.html">
+		<em:creator>plus7, SHIMODA Hiroshi</em:creator>
+		<em:contributor>alice0775</em:contributor>
+		<em:contributor>Dear Periwinkle</em:contributor>
+      </RDF:Description>
+    </em:localized>
+
+
+	<em:targetApplication>
+      <!-- Firefox -->
+	  <RDF:Description em:id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
+	                   em:minVersion="3.5"
+	                   em:maxVersion="30.0.*" />
+    </em:targetApplication>
+    <em:targetApplication>
+      <!-- Thunderbird -->
+	  <RDF:Description em:id="{3550f703-e582-4d05-9a08-453d09bdfdc6}"
+	                   em:minVersion="3.0"
+	                   em:maxVersion="3.1.*" />
+	</em:targetApplication>
+  </RDF:Description>
+</RDF:RDF>
diff --git a/modules/mail.jsm b/modules/mail.jsm
index 41754f8..c589c74 100644
--- a/modules/mail.jsm
+++ b/modules/mail.jsm
@@ -64,13 +64,13 @@ var XMigemoMail = {
 				}
 				regexp = new RegExp(regexp, 'ig');
 
-				let sql = <![CDATA[
-					SELECT GROUP_CONCAT(%COLUMNS%, ?1)
-					  FROM messagesText_content c
-					       LEFT JOIN messages m ON m.id = c.docid
-					       LEFT JOIN folderLocations f ON f.id = m.folderID
-					 WHERE f.folderURI = ?2
-				]]>.toString().replace('%COLUMNS%', columns.join(' || '));
+				let sql = "\
+					SELECT GROUP_CONCAT(%COLUMNS%, ?1)\
+					  FROM messagesText_content c\
+					       LEFT JOIN messages m ON m.id = c.docid\
+					       LEFT JOIN folderLocations f ON f.id = m.folderID\
+					 WHERE f.folderURI = ?2\
+				".replace('%COLUMNS%', columns.join(' || '));
 				let statement = this.DBConnection.createStatement(sql);
 				statement.bindStringParameter(0, '\n');
 				statement.bindStringParameter(1, aFolder.folderURL);
diff --git a/modules/places.jsm b/modules/places.jsm
index 98cfddc..5913dba 100644
--- a/modules/places.jsm
+++ b/modules/places.jsm
@@ -236,26 +236,26 @@ var XMigemoPlaces = {
 		return sql;
 	},
 	
-	placesSourceInRangeSQLBase : <![CDATA[ 
-		SELECT GROUP_CONCAT(%FINDKEY_CONTENTS%, %PLACE_FOR_LINEBREAK%)
-		  FROM (SELECT p.id id,
-		               p.title title,
-		               p.url uri,
-		               p.frecency frecency,
-		               p.typed typed,
-		               %BOOKMARK_TITLE%,
-		               %TAGS%
-		          FROM moz_places p
-		               LEFT OUTER JOIN moz_favicons f ON f.id = p.favicon_id
-		               %SOURCE_FILTER%
-		         WHERE p.frecency <> 0 AND p.hidden <> 1
-		               %EXCLUDE_JAVASCRIPT%
-		               %ONLY_TYPED%
-		               %ONLY_TAGGED%
-		               %ONLY_OPENPAGE%
-		         ORDER BY frecency DESC
-		         LIMIT %PLACE_FOR_START%,%PLACE_FOR_RANGE%)
-	]]>.toString(),
+	placesSourceInRangeSQLBase : "\
+		SELECT GROUP_CONCAT(%FINDKEY_CONTENTS%, %PLACE_FOR_LINEBREAK%)\
+		  FROM (SELECT p.id id,\
+		               p.title title,\
+		               p.url uri,\
+		               p.frecency frecency,\
+		               p.typed typed,\
+		               %BOOKMARK_TITLE%,\
+		               %TAGS%\
+		          FROM moz_places p\
+		               LEFT OUTER JOIN moz_favicons f ON f.id = p.favicon_id\
+		               %SOURCE_FILTER%\
+		         WHERE p.frecency <> 0 AND p.hidden <> 1\
+		               %EXCLUDE_JAVASCRIPT%\
+		               %ONLY_TYPED%\
+		               %ONLY_TAGGED%\
+		               %ONLY_OPENPAGE%\
+		         ORDER BY frecency DESC\
+		         LIMIT %PLACE_FOR_START%,%PLACE_FOR_RANGE%)\
+	",
   
 	getPlacesItemsSQL : function(aFindFlag) 
 	{
@@ -284,31 +284,31 @@ var XMigemoPlaces = {
 		return sql;
 	},
 	
-	placesItemsSQLBase : <![CDATA[ 
-		SELECT title, uri, favicon, bookmark, tags, findkey %OPEN_COUNT_FINAL%
-		  FROM (SELECT *,
-		        GROUP_CONCAT(%FINDKEY_CONTENTS%, ' ') findkey
-		    FROM (SELECT p.title title,
-		                 p.url uri,
-		                 f.url favicon,
-		                 p.frecency frecency,
-		                 p.typed typed,
-		                 %BOOKMARK_TITLE%,
-		                 %TAGS%
-		                 %OPEN_COUNT%
-		            FROM moz_places p
-		                 LEFT OUTER JOIN moz_favicons f ON f.id = p.favicon_id
-		                 %SOURCE_FILTER%
-		           WHERE p.frecency <> 0 AND p.hidden <> 1
-		                 %EXCLUDE_JAVASCRIPT%
-		                 %ONLY_TYPED%
-		                 %ONLY_TAGGED%
-		                 %ONLY_OPENPAGE%
-		           ORDER BY frecency DESC
-		           %SOURCES_LIMIT_PART%)
-		   GROUP BY uri)
-		   WHERE %TERMS_RULES%
-	]]>.toString(),
+	placesItemsSQLBase : "\
+		SELECT title, uri, favicon, bookmark, tags, findkey %OPEN_COUNT_FINAL%\
+		  FROM (SELECT *,\
+		        GROUP_CONCAT(%FINDKEY_CONTENTS%, ' ') findkey\
+		    FROM (SELECT p.title title,\
+		                 p.url uri,\
+		                 f.url favicon,\
+		                 p.frecency frecency,\
+		                 p.typed typed,\
+		                 %BOOKMARK_TITLE%,\
+		                 %TAGS%\
+		                 %OPEN_COUNT%\
+		            FROM moz_places p\
+		                 LEFT OUTER JOIN moz_favicons f ON f.id = p.favicon_id\
+		                 %SOURCE_FILTER%\
+		           WHERE p.frecency <> 0 AND p.hidden <> 1\
+		                 %EXCLUDE_JAVASCRIPT%\
+		                 %ONLY_TYPED%\
+		                 %ONLY_TAGGED%\
+		                 %ONLY_OPENPAGE%\
+		           ORDER BY frecency DESC\
+		           %SOURCES_LIMIT_PART%)\
+		   GROUP BY uri)\
+		   WHERE %TERMS_RULES%\
+	",
    
 /* ���͗����̌��� */ 
 	
@@ -337,35 +337,35 @@ var XMigemoPlaces = {
 		return sql;
 	},
 	
-	inputHistorySourceInRangeSQLBase : <![CDATA[ 
-		SELECT GROUP_CONCAT(%FINDKEY_CONTENTS%, %PLACE_FOR_LINEBREAK%)
-		  FROM (SELECT p.title title,
-		               p.url uri,
-		               p.frecency frecency,
-		               %BOOKMARK_TITLE%,
-		               %TAGS%,
-		               i.rank rank
-		          FROM (SELECT ROUND(
-		                         MAX(
-		                           (
-		                             (i.input = ?1) + (SUBSTR(i.input, 1, LENGTH(?1)) = ?1)
-		                           ) * i.use_count
-		                         ),
-		                         1
-		                       ) AS rank,
-		                       place_id
-		                  FROM moz_inputhistory i
-		                 GROUP BY i.place_id HAVING rank > 0
-		               ) AS i
-		               LEFT OUTER JOIN moz_places p ON i.place_id = p.id
-		               %SOURCE_FILTER%
-		         WHERE 1 %EXCLUDE_JAVASCRIPT%
-		                 %ONLY_TYPED%
-		                 %ONLY_TAGGED%
-		                 %ONLY_OPENPAGE%
-		         ORDER BY rank DESC, frecency DESC
-		         LIMIT %PLACE_FOR_START%,%PLACE_FOR_RANGE%)
-	]]>.toString(),
+	inputHistorySourceInRangeSQLBase : "\
+		SELECT GROUP_CONCAT(%FINDKEY_CONTENTS%, %PLACE_FOR_LINEBREAK%)\
+		  FROM (SELECT p.title title,\
+		               p.url uri,\
+		               p.frecency frecency,\
+		               %BOOKMARK_TITLE%,\
+		               %TAGS%,\
+		               i.rank rank\
+		          FROM (SELECT ROUND(\
+		                         MAX(\
+		                           (\
+		                             (i.input = ?1) + (SUBSTR(i.input, 1, LENGTH(?1)) = ?1)\
+		                           ) * i.use_count\
+		                         ),\
+		                         1\
+		                       ) AS rank,\
+		                       place_id\
+		                  FROM moz_inputhistory i\
+		                 GROUP BY i.place_id HAVING rank > 0\
+		               ) AS i\
+		               LEFT OUTER JOIN moz_places p ON i.place_id = p.id\
+		               %SOURCE_FILTER%\
+		         WHERE 1 %EXCLUDE_JAVASCRIPT%\
+		                 %ONLY_TYPED%\
+		                 %ONLY_TAGGED%\
+		                 %ONLY_OPENPAGE%\
+		         ORDER BY rank DESC, frecency DESC\
+		         LIMIT %PLACE_FOR_START%,%PLACE_FOR_RANGE%)\
+	",
   
 	getInputHistoryItemsSQL : function(aFindFlag) 
 	{
@@ -392,77 +392,77 @@ var XMigemoPlaces = {
 		return sql;
 	},
 	
-	inputHistoryItemsSQLBase : <![CDATA[ 
-		SELECT title, uri, favicon, bookmark, tags, findkey
-		  FROM (SELECT *,
-		        GROUP_CONCAT(%FINDKEY_CONTENTS%, ' ') findkey
-		    FROM (SELECT p.title title,
-		                 p.url uri,
-		                 f.url favicon,
-		                 p.frecency frecency,
-		                 %BOOKMARK_TITLE%,
-		                 %TAGS%,
-		                 i.rank rank
-		            FROM (SELECT ROUND(
-		                           MAX(
-		                             (
-		                               (i.input = ?1) + (SUBSTR(i.input, 1, LENGTH(?1)) = ?1)
-		                             ) * i.use_count
-		                           ),
-		                           1
-		                         ) AS rank,
-		                         place_id
-		                    FROM moz_inputhistory i
-		                   GROUP BY i.place_id HAVING rank > 0
-		                 ) AS i
-		                 LEFT OUTER JOIN moz_places p ON i.place_id = p.id
-		                 %SOURCE_FILTER%
-		                 LEFT OUTER JOIN moz_favicons f ON f.id = p.favicon_id
-		           WHERE 1 %EXCLUDE_JAVASCRIPT%
-		                   %ONLY_TYPED%
-		                   %ONLY_TAGGED%
-		                   %ONLY_OPENPAGE%
-		           %SOURCES_LIMIT_PART%)
-		   GROUP BY uri
-		   ORDER BY rank DESC, frecency DESC)
-		   WHERE %TERMS_RULES%
-	]]>.toString(),
+	inputHistoryItemsSQLBase : "\
+		SELECT title, uri, favicon, bookmark, tags, findkey\
+		  FROM (SELECT *,\
+		        GROUP_CONCAT(%FINDKEY_CONTENTS%, ' ') findkey\
+		    FROM (SELECT p.title title,\
+		                 p.url uri,\
+		                 f.url favicon,\
+		                 p.frecency frecency,\
+		                 %BOOKMARK_TITLE%,\
+		                 %TAGS%,\
+		                 i.rank rank\
+		            FROM (SELECT ROUND(\
+		                           MAX(\
+		                             (\
+		                               (i.input = ?1) + (SUBSTR(i.input, 1, LENGTH(?1)) = ?1)\
+		                             ) * i.use_count\
+		                           ),\
+		                           1\
+		                         ) AS rank,\
+		                         place_id\
+		                    FROM moz_inputhistory i\
+		                   GROUP BY i.place_id HAVING rank > 0\
+		                 ) AS i\
+		                 LEFT OUTER JOIN moz_places p ON i.place_id = p.id\
+		                 %SOURCE_FILTER%\
+		                 LEFT OUTER JOIN moz_favicons f ON f.id = p.favicon_id\
+		           WHERE 1 %EXCLUDE_JAVASCRIPT%\
+		                   %ONLY_TYPED%\
+		                   %ONLY_TAGGED%\
+		                   %ONLY_OPENPAGE%\
+		           %SOURCES_LIMIT_PART%)\
+		   GROUP BY uri\
+		   ORDER BY rank DESC, frecency DESC)\
+		   WHERE %TERMS_RULES%\
+	",
    
 /* �X�}�[�g�L�[���[�h�̌��� */ 
 	
-	keywordSearchSourceInRangeSQL : <![CDATA[ 
-		SELECT GROUP_CONCAT(search_url, %PLACE_FOR_LINEBREAK%)
-		  FROM (SELECT REPLACE(s.url, '%s', ?2) search_url
-		          FROM moz_keywords k
-		               JOIN moz_bookmarks b ON b.keyword_id = k.id
-		               JOIN moz_places s ON s.id = b.fk
-		               LEFT OUTER JOIN moz_places h ON h.url = search_url
-		          WHERE LOWER(k.keyword) = LOWER(?1)
-		          ORDER BY h.frecency DESC
-                  LIMIT %PLACE_FOR_START%,%PLACE_FOR_RANGE%)
-	]]>.toString(),
+	keywordSearchSourceInRangeSQL : "\
+		SELECT GROUP_CONCAT(search_url, %PLACE_FOR_LINEBREAK%)\
+		  FROM (SELECT REPLACE(s.url, '%s', ?2) search_url\
+		          FROM moz_keywords k\
+		               JOIN moz_bookmarks b ON b.keyword_id = k.id\
+		               JOIN moz_places s ON s.id = b.fk\
+		               LEFT OUTER JOIN moz_places h ON h.url = search_url\
+		          WHERE LOWER(k.keyword) = LOWER(?1)\
+		          ORDER BY h.frecency DESC\
+                  LIMIT %PLACE_FOR_START%,%PLACE_FOR_RANGE%)\
+	",
  
-	keywordSearchItemInRangeSQL : <![CDATA[ 
-		SELECT h.title,
-		       REPLACE(s.url, '%s', ?2) search_url,
-		       IFNULL(f.url,
-		              (SELECT f.url
-		                 FROM moz_places r
-		                      JOIN moz_favicons f ON f.id = r.favicon_id
-		                WHERE r.rev_host = s.rev_host
-		                ORDER BY r.frecency DESC LIMIT 1)),
-		       b.title,
-		       NULL,
-		       REPLACE(s.url, '%s', ?2) search_source
-		  FROM moz_keywords k
-		       JOIN moz_bookmarks b ON b.keyword_id = k.id
-		       JOIN moz_places s ON s.id = b.fk
-		       LEFT OUTER JOIN moz_places h ON h.url = search_url
-		       LEFT OUTER JOIN moz_favicons f ON f.id = h.favicon_id
-		 WHERE LOWER(k.keyword) = LOWER(?1)
-		 ORDER BY h.frecency DESC
-         %SOURCES_LIMIT_PART%
-	]]>.toString(),
+	keywordSearchItemInRangeSQL : "\
+		SELECT h.title,\
+		       REPLACE(s.url, '%s', ?2) search_url,\
+		       IFNULL(f.url,\
+		              (SELECT f.url\
+		                 FROM moz_places r\
+		                      JOIN moz_favicons f ON f.id = r.favicon_id\
+		                WHERE r.rev_host = s.rev_host\
+		                ORDER BY r.frecency DESC LIMIT 1)),\
+		       b.title,\
+		       NULL,\
+		       REPLACE(s.url, '%s', ?2) search_source\
+		  FROM moz_keywords k\
+		       JOIN moz_bookmarks b ON b.keyword_id = k.id\
+		       JOIN moz_places s ON s.id = b.fk\
+		       LEFT OUTER JOIN moz_places h ON h.url = search_url\
+		       LEFT OUTER JOIN moz_favicons f ON f.id = h.favicon_id\
+		 WHERE LOWER(k.keyword) = LOWER(?1)\
+		 ORDER BY h.frecency DESC\
+         %SOURCES_LIMIT_PART%\
+	",
   
 /* Places Organizer�ƃT�C�h�o�[�̌��� */ 
 	
@@ -476,17 +476,17 @@ var XMigemoPlaces = {
 		return this._historyInRangeSQL;
 	},
 	
-	historyInRangeSQLBase : <![CDATA[ 
-		SELECT GROUP_CONCAT(%FINDKEY_CONTENTS%, %PLACE_FOR_LINEBREAK%)
-		  FROM (SELECT p.id id,
-		               p.title title,
-		               p.url uri,
-		               p.title bookmark,
-		               %TAGS%
-		          FROM moz_places p
-		         WHERE p.hidden <> 1
-		         LIMIT %PLACE_FOR_START%,%PLACE_FOR_RANGE%)
-	]]>.toString(),
+	historyInRangeSQLBase : "\
+		SELECT GROUP_CONCAT(%FINDKEY_CONTENTS%, %PLACE_FOR_LINEBREAK%)\
+		  FROM (SELECT p.id id,\
+		               p.title title,\
+		               p.url uri,\
+		               p.title bookmark,\
+		               %TAGS%\
+		          FROM moz_places p\
+		         WHERE p.hidden <> 1\
+		         LIMIT %PLACE_FOR_START%,%PLACE_FOR_RANGE%)\
+	",
   
 	get bookmarksInRangeSQL() 
 	{
@@ -498,18 +498,18 @@ var XMigemoPlaces = {
 		return this._bookmarksInRangeSQL;
 	},
 	
-	bookmarksInRangeSQLBase : <![CDATA[ 
-		SELECT GROUP_CONCAT(%FINDKEY_CONTENTS%, %PLACE_FOR_LINEBREAK%)
-		  FROM (SELECT b.id id,
-		               b.title title,
-		               p.url uri,
-		               b.title bookmark,
-		               %TAGS%
-		          FROM moz_bookmarks b
-		               LEFT OUTER JOIN moz_places p ON b.fk = p.id
-		         WHERE b.type = 1 AND b.title IS NOT NULL
-		         LIMIT %PLACE_FOR_START%,%PLACE_FOR_RANGE%)
-	]]>.toString(),
+	bookmarksInRangeSQLBase : "\
+		SELECT GROUP_CONCAT(%FINDKEY_CONTENTS%, %PLACE_FOR_LINEBREAK%)\
+		  FROM (SELECT b.id id,\
+		               b.title title,\
+		               p.url uri,\
+		               b.title bookmark,\
+		               %TAGS%\
+		          FROM moz_bookmarks b\
+		               LEFT OUTER JOIN moz_places p ON b.fk = p.id\
+		         WHERE b.type = 1 AND b.title IS NOT NULL\
+		         LIMIT %PLACE_FOR_START%,%PLACE_FOR_RANGE%)\
+	",
    
 	insertFilter : function(aSQL, aFindFlag) 
 	{
@@ -568,40 +568,40 @@ var XMigemoPlaces = {
 			);
 	},
  
-	parentFolderSQLFragment : <![CDATA[ 
-		SELECT b.parent
-		  FROM moz_bookmarks b
-		       JOIN moz_bookmarks t
-		       ON t.id = b.parent
-		       AND t.parent != (SELECT folder_id
-		                          FROM moz_bookmarks_roots
-		                         WHERE root_name = 'tags')
-		 WHERE b.type = 1 AND b.fk = p.id
-		 ORDER BY b.lastModified DESC LIMIT 1
-	]]>.toString(),
+	parentFolderSQLFragment : "\
+		SELECT b.parent\
+		  FROM moz_bookmarks b\
+		       JOIN moz_bookmarks t\
+		       ON t.id = b.parent\
+		       AND t.parent != (SELECT folder_id\
+		                          FROM moz_bookmarks_roots\
+		                         WHERE root_name = 'tags')\
+		 WHERE b.type = 1 AND b.fk = p.id\
+		 ORDER BY b.lastModified DESC LIMIT 1\
+	",
  
-	bookmarkTitleSQLFragment : <![CDATA[ 
-		(SELECT b.title
-		  FROM moz_bookmarks b
-		       JOIN moz_bookmarks t
-		       ON t.id = b.parent
-		       AND t.parent != (SELECT folder_id
-		                          FROM moz_bookmarks_roots
-		                         WHERE root_name = 'tags')
-		 WHERE b.type = 1 AND b.fk = p.id
-		 ORDER BY b.lastModified DESC LIMIT 1) bookmark
-	]]>.toString(),
+	bookmarkTitleSQLFragment : "\
+		(SELECT b.title\
+		  FROM moz_bookmarks b\
+		       JOIN moz_bookmarks t\
+		       ON t.id = b.parent\
+		       AND t.parent != (SELECT folder_id\
+		                          FROM moz_bookmarks_roots\
+		                         WHERE root_name = 'tags')\
+		 WHERE b.type = 1 AND b.fk = p.id\
+		 ORDER BY b.lastModified DESC LIMIT 1) bookmark\
+	",
  
-	tagsSQLFragment : <![CDATA[ 
-		(SELECT GROUP_CONCAT(t.title, ',')
-		  FROM moz_bookmarks b
-		       JOIN moz_bookmarks t
-		       ON t.id = b.parent
-		       AND t.parent = (SELECT folder_id
-		                         FROM moz_bookmarks_roots
-		                        WHERE root_name = 'tags')
-		 WHERE b.type = 1 AND b.fk = p.id) tags
-	]]>.toString(),
+	tagsSQLFragment : "\
+		(SELECT GROUP_CONCAT(t.title, ',')\
+		  FROM moz_bookmarks b\
+		       JOIN moz_bookmarks t\
+		       ON t.id = b.parent\
+		       AND t.parent = (SELECT folder_id\
+		                         FROM moz_bookmarks_roots\
+		                        WHERE root_name = 'tags')\
+		 WHERE b.type = 1 AND b.fk = p.id) tags\
+	",
  
 	openCountColumnSQLFragment      : ', o.open_count open_count', 
 	openCountFinalColumnSQLFragment : ', open_count',
@@ -901,23 +901,23 @@ var XMigemoPlaces = {
 		'xulmigemo.autostart.regExpFind',
 		'browser.urlbar'
 	],
-	preferences : <![CDATA[
-		xulmigemo.places.enableBoundaryFind
-		xulmigemo.places.ignoreURI
-		xulmigemo.places.chunk
-		xulmigemo.places.minLength
-		xulmigemo.autostart.regExpFind
-		browser.urlbar.filter.javascript
-		browser.urlbar.restrict.history
-		browser.urlbar.restrict.bookmark
-		browser.urlbar.restrict.tag
-		browser.urlbar.restrict.typed
-		browser.urlbar.restrict.openpage
-		browser.urlbar.match.title
-		browser.urlbar.match.url
-		browser.urlbar.matchBehavior
-		browser.urlbar.default.behavior
-	]]>.toString(),
+	preferences : "\
+		xulmigemo.places.enableBoundaryFind\
+		xulmigemo.places.ignoreURI\
+		xulmigemo.places.chunk\
+		xulmigemo.places.minLength\
+		xulmigemo.autostart.regExpFind\
+		browser.urlbar.filter.javascript\
+		browser.urlbar.restrict.history\
+		browser.urlbar.restrict.bookmark\
+		browser.urlbar.restrict.tag\
+		browser.urlbar.restrict.typed\
+		browser.urlbar.restrict.openpage\
+		browser.urlbar.match.title\
+		browser.urlbar.match.url\
+		browser.urlbar.matchBehavior\
+		browser.urlbar.default.behavior\
+	",
   
 	init : function() 
 	{
