--- a/python/configure.py
+++ b/python/configure.py
@@ -361,6 +361,12 @@
         else:
             subprocess.Popen(["bash", Variables.playonlinux_env+"/bash/POL_Command", "--prefix", self.s_prefix.encode('utf-8','replace'), "POL_Wine_DirectInput", param, self.display_elements[param].GetValue().encode('utf-8','replace')])
 
+    def change_Optimus_settings(self, param):
+        if(self.s_isPrefix == False):
+            subprocess.Popen(["bash", Variables.playonlinux_env+"/bash/POL_Command", self.s_title.encode('utf-8','replace'), "POL_Optimus_Support", param, self.display_elements[param].GetValue().encode('utf-8','replace')])
+        else:
+            subprocess.Popen(["bash", Variables.playonlinux_env+"/bash/POL_Command", "--prefix", self.s_prefix.encode('utf-8','replace'), "POL_Optimus_Support", param, self.display_elements[param].GetValue().encode('utf-8','replace')])
+
     def get_current_settings(self, param):
         self.display_elements[param].SetValue(self.settings[param])
 
@@ -425,7 +431,7 @@
             self.display_elements["pre_run_text"].Hide()
 
         self.Refresh()
-        self.elements = ["UseGLSL","DirectDrawRenderer","VideoMemorySize","OffscreenRenderingMode","RenderTargetModeLock","Multisampling","StrictDrawOrdering","MouseWarpOverride"]
+        self.elements = ["UseGLSL","DirectDrawRenderer","VideoMemorySize","OffscreenRenderingMode","RenderTargetModeLock","Multisampling","StrictDrawOrdering","OptimusSupport","MouseWarpOverride"]
         self.settings = wine.LoadRegValues(self.s_prefix,self.elements)
         #print self.settings
         self.get_current_settings("UseGLSL")
@@ -435,6 +441,7 @@
         self.get_current_settings("RenderTargetModeLock")
         self.get_current_settings("Multisampling")
         self.get_current_settings("StrictDrawOrdering")
+        self.get_current_settings("OptimusSupport")
         self.get_current_settings("MouseWarpOverride")
 
         self.arch = playonlinux.GetSettings('ARCH',self.s_prefix)
@@ -465,6 +472,8 @@
             self.change_Direct3D_settings("Multisampling")
         if(param == 307):
             self.change_Direct3D_settings("StrictDrawOrdering")
+        if(param == 308):
+            self.change_Direct3D_settings("OptimusSupport")
         if(param == 401):
             self.change_DirectInput_settings("MouseWarpOverride")
 
@@ -569,7 +578,7 @@
         self.AddDisplayElement(_("Render target mode lock"),"RenderTargetModeLock",["disabeld","readdraw","readtex"],["disabled","readdraw","readtex"],5)
         self.AddDisplayElement(_("Multisampling"),"Multisampling",["Enabled","Disabled"],["enabled","disabled"],6)
         self.AddDisplayElement(_("Strict Draw Ordering"),"StrictDrawOrdering",["enabled","disabled"],["enabled","disabled"],7)
-
+        self.AddDisplayElement(_("Optimus Support"),"OptimusSupport",["enabled","disabled"],["enabled","disabled"],8)
 
     def Miscellaneous(self, nom):
         self.misc_elements = {}

--- a/lib/wine.lib
+++ b/lib/wine.lib
@@ -543,6 +543,14 @@
 	return $errors
 }
 
+POL_Optimus_Support ()
+{
+#	POL_Wine_AutoSetVersionEnv
+#	wineserver -k
+	"$(POL_Config_Write PRE_WINE 'optirun')"
+#	wineserver -k
+}
+
 POL_Wine_SelectPrefix()
 {
 	# Select a wineprefix and remove unexpected chars
