diff --git a/java/client/src/org/openqa/selenium/firefox/FirefoxDriver.java b/java/client/src/org/openqa/selenium/firefox/FirefoxDriver.java
index <HASH>..<HASH> 100644
--- a/java/client/src/org/openqa/selenium/firefox/FirefoxDriver.java
+++ b/java/client/src/org/openqa/selenium/firefox/FirefoxDriver.java
@@ -131,7 +131,8 @@ public class FirefoxDriver extends RemoteWebDriver {
     Objects.requireNonNull(options, "No options to construct executor from");
     DriverService.Builder<?, ?> builder;
 
-    if (options.isLegacy()) {
+    if (! Boolean.parseBoolean(System.getProperty(DRIVER_USE_MARIONETTE, "true"))
+        || options.isLegacy()) {
       builder = XpiDriverService.builder()
           .withBinary(options.getBinary())
           .withProfile(Optional.ofNullable(options.getProfile()).orElse(new FirefoxProfile()));
Restoring ability to use system property to force legacy mode or marionette. If we want to delete it we should deprecate it first.