[Bug 228617]
diff --git a/features/org.eclipse.actf.ai-feature/feature.xml b/features/org.eclipse.actf.ai-feature/feature.xml
index 74fba37..7f6bdd1 100644
--- a/features/org.eclipse.actf.ai-feature/feature.xml
+++ b/features/org.eclipse.actf.ai-feature/feature.xml
@@ -24,13 +24,6 @@
    </requires>
 
    <plugin
-         id="org.eclipse.actf.accservice.swtbridge"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
          id="org.eclipse.actf.ai.audio.description"
          download-size="0"
          install-size="0"
@@ -108,13 +101,6 @@
          unpack="false"/>
 
    <plugin
-         id="org.eclipse.actf.ai.key.keyhook.win32"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
          id="org.eclipse.actf.ai.key.keyui"
          download-size="0"
          install-size="0"
@@ -177,13 +163,6 @@
          unpack="false"/>
 
    <plugin
-         id="org.eclipse.actf.util.comclutch.win32"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
          id="org.eclipse.actf.model.flash"
          download-size="0"
          install-size="0"
@@ -198,4 +177,11 @@
          fragment="true"
          unpack="false"/>
 
+   <plugin
+         id="org.eclipse.actf.util.comclutch.win32"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>
diff --git a/plugins/org.eclipse.actf.ai.key.keyui/META-INF/MANIFEST.MF b/plugins/org.eclipse.actf.ai.key.keyui/META-INF/MANIFEST.MF
index 544e39d..f1f0e71 100644
--- a/plugins/org.eclipse.actf.ai.key.keyui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.actf.ai.key.keyui/META-INF/MANIFEST.MF
@@ -6,8 +6,8 @@
 Bundle-Activator: org.eclipse.actf.ai.key.keyui.KeyUIPlugin
 Bundle-Vendor: Eclipse.org
 Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.actf.ai.key.keyhook.win32,
  org.eclipse.actf.ai.xmlstore,
  org.eclipse.ui,
- org.eclipse.actf.ai.navigator
+ org.eclipse.actf.ai.navigator,
+ org.eclipse.actf.util.comclutch.win32
 Eclipse-LazyStart: true
diff --git a/plugins/org.eclipse.actf.ai.key.keyui/src/org/eclipse/actf/ai/key/keyui/impl/KeyUIImpl.java b/plugins/org.eclipse.actf.ai.key.keyui/src/org/eclipse/actf/ai/key/keyui/impl/KeyUIImpl.java
index 92f34b6..cb8995a 100644
--- a/plugins/org.eclipse.actf.ai.key.keyui/src/org/eclipse/actf/ai/key/keyui/impl/KeyUIImpl.java
+++ b/plugins/org.eclipse.actf.ai.key.keyui/src/org/eclipse/actf/ai/key/keyui/impl/KeyUIImpl.java
@@ -18,10 +18,6 @@
 import java.util.HashMap;
 import java.util.Iterator;
 
-import org.eclipse.actf.ai.key.keyhook.win32.IKeyHook;
-import org.eclipse.actf.ai.key.keyhook.win32.IKeyHookListener;
-import org.eclipse.actf.ai.key.keyhook.win32.ISendEvent;
-import org.eclipse.actf.ai.key.keyhook.win32.KeyHookWin32Plugin;
 import org.eclipse.actf.ai.key.keyui.Messages;
 import org.eclipse.actf.ai.key.keyui.impl.KeyUIImpl.KC.Type;
 import org.eclipse.actf.ai.navigator.IBrowserControl;
@@ -34,6 +30,10 @@
 import org.eclipse.actf.ai.xmlstore.IXMLStoreService;
 import org.eclipse.actf.ai.xmlstore.XMLStoreException;
 import org.eclipse.actf.ai.xmlstore.XMLStorePlugin;
+import org.eclipse.actf.util.win32.comclutch.ComPlugin;
+import org.eclipse.actf.util.win32.keyhook.IKeyHook;
+import org.eclipse.actf.util.win32.keyhook.IKeyHookListener;
+import org.eclipse.actf.util.win32.keyhook.ISendEvent;
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.IMenuManager;
 import org.eclipse.jface.action.Separator;
@@ -86,8 +86,8 @@
     }
 
     public void initialize() {
-        keyHook = KeyHookWin32Plugin.getDefault().newKeyHook(this);
-        sendEvent = KeyHookWin32Plugin.getDefault().newSendEvent();
+        keyHook = ComPlugin.getDefault().newKeyHook(this);
+        sendEvent = ComPlugin.getDefault().newSendEvent();
 
         IXMLStoreService xmlStoreService = XMLStorePlugin.getDefault().getXMLStoreService();
         IXMLSelector selector = xmlStoreService.getSelectorWithDocElem("UserPreferences", PREFERENCES_NS);
diff --git a/plugins/org.eclipse.actf.ai.query/src/org/eclipse/actf/ai/query/impl/MSAAQueryImpl.java b/plugins/org.eclipse.actf.ai.query/src/org/eclipse/actf/ai/query/impl/MSAAQueryImpl.java
index e718e54..edc9503 100644
--- a/plugins/org.eclipse.actf.ai.query/src/org/eclipse/actf/ai/query/impl/MSAAQueryImpl.java
+++ b/plugins/org.eclipse.actf.ai.query/src/org/eclipse/actf/ai/query/impl/MSAAQueryImpl.java
@@ -14,7 +14,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.eclipse.actf.model.dom.dombycom.IMSAANode;
+import org.eclipse.actf.model.dom.dombycom.IFlashMSAANode;
 import org.w3c.dom.Attr;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -36,12 +36,12 @@
 
     public List<Node> query(Node base) {
         if (ids == null) return null;
-        if (!(base instanceof IMSAANode)) return null;
-        IMSAANode mn = (IMSAANode) base;
+        if (!(base instanceof IFlashMSAANode)) return null;
+        IFlashMSAANode mn = (IFlashMSAANode) base;
 
         List<Node> r = new ArrayList<Node>();
         for (int i = 0; i < ids.length; i++) {
-            IMSAANode n = mn.searchByID(ids[i]);
+            IFlashMSAANode n = mn.searchByID(ids[i]);
             if (n != null) r.add(n);
         }
         return r;
@@ -57,10 +57,10 @@
     }
     
     static Attr serializeQuery(Node domNode, Node usrNode) {
-        if (!(domNode instanceof IMSAANode))
+        if (!(domNode instanceof IFlashMSAANode))
             return null;
         Document doc = usrNode.getOwnerDocument();
-        String target = ((IMSAANode)domNode).getID();
+        String target = ((IFlashMSAANode)domNode).getID();
         if (target != null && target.length() > 0) {
             Attr attr = doc.createAttributeNS(MSAA_QUERY_NS, "msq:idrefs");
             attr.setNodeValue(target);
diff --git a/plugins/org.eclipse.actf.ai.query/src/org/eclipse/actf/ai/query/impl/QueryImpl.java b/plugins/org.eclipse.actf.ai.query/src/org/eclipse/actf/ai/query/impl/QueryImpl.java
index bbe0862..1cb7adf 100644
--- a/plugins/org.eclipse.actf.ai.query/src/org/eclipse/actf/ai/query/impl/QueryImpl.java
+++ b/plugins/org.eclipse.actf.ai.query/src/org/eclipse/actf/ai/query/impl/QueryImpl.java
@@ -17,7 +17,7 @@
 
 import org.eclipse.actf.ai.query.IQuery;
 import org.eclipse.actf.model.dom.dombycom.IFlashNode;
-import org.eclipse.actf.model.dom.dombycom.IMSAANode;
+import org.eclipse.actf.model.dom.dombycom.IFlashMSAANode;
 import org.w3c.dom.Attr;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -173,8 +173,8 @@
         if (domTarget instanceof IFlashNode) {
             xmlNode = ((IFlashNode) domTarget).getBaseNode();
             flashAttr = FlashQueryImpl.serializeQuery(domTarget, usrParent);
-        } else if (domTarget instanceof IMSAANode) {
-            xmlNode = ((IMSAANode) domTarget).getBaseNode();
+        } else if (domTarget instanceof IFlashMSAANode) {
+            xmlNode = ((IFlashMSAANode) domTarget).getBaseNode();
             flashAttr = MSAAQueryImpl.serializeQuery(domTarget, usrParent);
         } else {
             xmlNode = domTarget;