diff --git a/java/server/src/org/openqa/selenium/remote/server/handler/internal/ArgumentConverter.java b/java/server/src/org/openqa/selenium/remote/server/handler/internal/ArgumentConverter.java
index <HASH>..<HASH> 100644
--- a/java/server/src/org/openqa/selenium/remote/server/handler/internal/ArgumentConverter.java
+++ b/java/server/src/org/openqa/selenium/remote/server/handler/internal/ArgumentConverter.java
@@ -22,6 +22,7 @@ import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 
+import org.openqa.selenium.remote.RemoteWebElement;
 import org.openqa.selenium.remote.server.KnownElements;
 
 import java.util.List;
@@ -51,6 +52,10 @@ public class ArgumentConverter implements Function<Object, Object> {
       return converted;
     }
 
+    if (arg instanceof RemoteWebElement) {
+      return knownElements.get(((RemoteWebElement) arg).getId());
+    }
+
     if (arg instanceof List<?>) {
       return Lists.newArrayList(Iterables.transform((List<?>) arg, this));
     }
Convert RemoteWebElements decoded from JSON to "known elements".

As of commit e<I>b<I>dc<I>b<I>ecf9c7a9bbe<I>a<I>b<I>ad, the decoded JSON parameters may include a WebElement. It's necessary to convert the element when a RemoteWebElement is passed as the "id" param to SwitchToFrame.

Fixes #<I>.