diff --git a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/EditPanelTab.java b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/EditPanelTab.java
index 16f7edb..e1f696e 100644
--- a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/EditPanelTab.java
+++ b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/EditPanelTab.java
@@ -1178,6 +1178,9 @@
 	 */
 	public void repaintTextEndTime() {
 		// PickUP current text
+		if(scaleVoiceSpeed.isDisposed()){
+			return;
+		}
 		int extendSpeed = scaleVoiceSpeed.getSelection();
 		int extendLang = currentDescLang;
 		String currentDesc = textAreaDescription.getText();
diff --git a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/WebBrowserEventListenerForPP.java b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/WebBrowserEventListenerForPP.java
index b4fa92d..c49ff07 100644
--- a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/WebBrowserEventListenerForPP.java
+++ b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/WebBrowserEventListenerForPP.java
@@ -11,6 +11,7 @@
 package org.eclipse.actf.ai.internal.ui.scripteditor;
 
 import org.eclipse.actf.ai.scripteditor.util.WebBrowserFactory;
+import org.eclipse.actf.model.flash.proxy.FlashCacheUtil;
 import org.eclipse.actf.model.ui.editor.browser.IWebBrowserACTF;
 import org.eclipse.actf.model.ui.editor.browser.IWebBrowserACTFEventListener;
 
@@ -19,11 +20,18 @@
 
 	public void beforeNavigate(IWebBrowserACTF webBrowser, String url,
 			String targetFrameName, boolean isInNavigation) {
+
+		//System.out.println(isInNavigation +" : "+targetFrameName+" : "+url);
+		if (isInNavigation && url != null
+				&& (url.startsWith("http") || url.startsWith("file"))) {
+			FlashCacheUtil.clearCache(true, null);
+		}
+
 		mediaSearchRequest(webBrowser);
 	}
 
 	public void browserDisposed(IWebBrowserACTF webBrowser, String title) {
-		//System.out.println("dispose: "+webBrowser);
+		// System.out.println("dispose: "+webBrowser);
 		mediaController.removeWebBrowser(webBrowser);
 	}
 
@@ -55,7 +63,7 @@
 	}
 
 	public void newWindow(IWebBrowserACTF webBrowser) {
-		System.out.println("new window: "+webBrowser);
+		System.out.println("new window: " + webBrowser);
 		changeCurrentWebBrowser(webBrowser);
 	}
 
@@ -94,12 +102,12 @@
 	}
 
 	WebBrowserFactory mediaController = WebBrowserFactory.getInstance();
-	
+
 	private void mediaSearchRequest(IWebBrowserACTF webBrowser) {
 		mediaController.mediaSearchRequest(webBrowser);
 	}
 
-	private void changeCurrentWebBrowser(IWebBrowserACTF webBrowser){
+	private void changeCurrentWebBrowser(IWebBrowserACTF webBrowser) {
 		mediaController.setCurrentWebBrowser(webBrowser);
 	}
 }
diff --git a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/examples/scripteditor/ApplicationWorkbenchWindowAdvisor.java b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/examples/scripteditor/ApplicationWorkbenchWindowAdvisor.java
index b0abff5..bbcbb0f 100644
--- a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/examples/scripteditor/ApplicationWorkbenchWindowAdvisor.java
+++ b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/examples/scripteditor/ApplicationWorkbenchWindowAdvisor.java
@@ -15,6 +15,7 @@
 import org.eclipse.actf.ai.internal.ui.scripteditor.PreviewPanel;
 import org.eclipse.actf.ai.scripteditor.util.WebBrowserFactory;
 import org.eclipse.actf.model.flash.proxy.FlashCacheUtil;
+import org.eclipse.actf.model.flash.proxy.ProxySettingUtil;
 import org.eclipse.actf.model.ui.editors.ie.WebBrowserEditor;
 import org.eclipse.actf.model.ui.util.ModelServiceUtils;
 import org.eclipse.swt.graphics.Point;
@@ -48,7 +49,9 @@
 	public void postWindowOpen() {
 		super.postWindowOpen();
 		FlashCacheUtil.checkCache();
-
+		
+		ProxySettingUtil.setCurrentMode(ProxySettingUtil.PROXY_NONE);
+		
 		// Launch Web Browser
 		String strUrl = "about:blank";
 		URL helpUrl = PlatformUI
