diff --git a/FCHost/fchost/fchost_handler.cc b/FCHost/fchost/fchost_handler.cc
index 367b5f8ac471c536ec587b85929e140389934e91..970b4e0176ba2f2a0737b16bd18949f5a91d2bac 100644
--- a/FCHost/fchost/fchost_handler.cc
+++ b/FCHost/fchost/fchost_handler.cc
@@ -190,10 +190,18 @@ bool FCHostHandler::OnPreKeyEvent(CefRefPtr<CefBrowser> browser,
 {
 	CEF_REQUIRE_UI_THREAD();
 
-	if (event.type == cef_key_event_type_t::KEYEVENT_CHAR)
+    // for nonwindows platforms, we need to know the windows equivalent keycode, because CEF will convert to them for us
+    const int key_f = 0x46;
+    const int key_j = 0x4A;
+    const int key_plus = 0xBB;
+    const int key_numpad_plus = 0x6B;
+    const int key_minus = 0xBD;
+    const int key_numpad_minus = 0x6D;
+
+	if (event.type == cef_key_event_type_t::KEYEVENT_RAWKEYDOWN)
 	{
 		// CTRL+SHIFT+J - bring up the Javascript debugger
-		if ((event.modifiers == (cef_event_flags_t::EVENTFLAG_CONTROL_DOWN | cef_event_flags_t::EVENTFLAG_SHIFT_DOWN)) && event.unmodified_character == 10 /* j? maybe only on windows? whatever */)
+		if ((event.modifiers == (cef_event_flags_t::EVENTFLAG_CONTROL_DOWN | cef_event_flags_t::EVENTFLAG_SHIFT_DOWN)) && event.windows_key_code == key_j)
 		{
 			CefWindowInfo windowInfo;
 			CefBrowserSettings settings;
@@ -204,12 +212,24 @@ bool FCHostHandler::OnPreKeyEvent(CefRefPtr<CefBrowser> browser,
 			return true;
 		}
 		// CTRL+F - bring up Find In Page
-		else if (event.modifiers == cef_event_flags_t::EVENTFLAG_CONTROL_DOWN && event.unmodified_character == 6 /* f? maybe only on windows? whatever */)
+		else if (event.modifiers == cef_event_flags_t::EVENTFLAG_CONTROL_DOWN && event.windows_key_code == key_f)
 		{
 			// probably can do this at some point by ripping off code from the full-fat cefclient, but damn there's a lot of it...
 			// return true;
 		}
-	}
+        // CTRL++ - zoom in
+        else if (event.modifiers == cef_event_flags_t::EVENTFLAG_CONTROL_DOWN && (event.windows_key_code == key_plus || event.windows_key_code == key_numpad_plus))
+        {
+            double curZoom = browser->GetHost()->GetZoomLevel();
+            browser->GetHost()->SetZoomLevel(curZoom + 1.0);
+        }
+        // CTRL+- - zoom out
+        else if (event.modifiers == cef_event_flags_t::EVENTFLAG_CONTROL_DOWN && (event.windows_key_code == key_minus || event.windows_key_code == key_numpad_minus))
+        {
+            double curZoom = browser->GetHost()->GetZoomLevel();
+            browser->GetHost()->SetZoomLevel(curZoom - 1.0);
+        }
+    }
 
 	return false;
 }