diff --git a/framework/src/com/phonegap/DroidGap.java b/framework/src/com/phonegap/DroidGap.java
index f272866b..738bc6b2 100644
--- a/framework/src/com/phonegap/DroidGap.java
+++ b/framework/src/com/phonegap/DroidGap.java
@@ -252,12 +252,12 @@ public class DroidGap extends Activity {
         
         if (keyCode == KeyEvent.KEYCODE_MENU) 
         {
-        	appView.loadUrl("javascript:fireMenuEvent()");
+        	appView.loadUrl("javascript:keyEvent.menuTrigger()");
         }
         
         if (keyCode == KeyEvent.KEYCODE_SEARCH) 
         {
-        	appView.loadUrl("javascript:fireSearchEvent()");
+        	appView.loadUrl("javascript:keyEvent.searchTrigger()");
         }
         
         return false;
diff --git a/js/keyevent.js b/js/keyevent.js
new file mode 100644
index 00000000..26f789f1
--- /dev/null
+++ b/js/keyevent.js
@@ -0,0 +1,22 @@
+function KeyEvent() 
+{
+}
+
+KeyEvent.prototype.menuTrigger = function()
+{
+  var e = document.createEvent('Events');
+  e.initEvent('menuKeyDown');
+  document.dispatchEvent(e);
+}
+
+KeyEvent.prototype.searchTrigger= function()
+{
+  var e = document.createEvent('Events');
+  e.initEvent('searchKeyDown');
+  document.dispatchEvent(e);
+}
+
+if (document.keyEvent == null || typeof document.keyEvent == 'undefined')
+{
+  window.keyEvent = document.keyEvent = new KeyEvent();
+}