diff -ruN uppsrc.orig/Core/core.upt uppsrc/Core/core.upt
--- uppsrc.orig/Core/core.upt	2011-02-16 10:12:56 +0600
+++ uppsrc/Core/core.upt	2011-10-13 01:13:26 +0600
@@ -3,6 +3,7 @@
 option "Create header" header;
 option "Commandline loop" cmdline;
 option "Multithreaded" mt;
+option "Use SSE2" sse2 = 1;
 
 @@<:PACKAGE:>.h
 ??header
@@ -25,7 +26,6 @@
 	for(int i = 0; i < cmdline.GetCount(); i++) {
 	}<:.:>
 }
-
 @@<:PACKAGE:>.upp
 uses Core;
 
@@ -33,4 +33,4 @@
 	"<:PACKAGE:>.cpp";
 
 mainconfig
-	"" = <:?mt:>"MT SSE2"<:/:>"SSE2"<:.:>;
+	"" = "<:?mt:>MT<:.:><:?mt && sse2:> <:.:><:?sse2:>SSE2<:.:>";
diff -ruN uppsrc.orig/Core/sub.upt uppsrc/Core/sub.upt
--- uppsrc.orig/Core/sub.upt	2010-03-25 02:04:59 +0600
+++ uppsrc/Core/sub.upt	2011-10-12 23:50:05 +0600
@@ -5,6 +5,5 @@
 #define _<:PACKAGE:>_<:PACKAGE:>_h
 
 #endif
-
 @@<:PACKAGE:>.upp
 file "<:PACKAGE:>.h";
diff -ruN uppsrc.orig/CtrlLib/Complex.upt uppsrc/CtrlLib/Complex.upt
--- uppsrc.orig/CtrlLib/Complex.upt	2011-02-16 10:12:56 +0600
+++ uppsrc/CtrlLib/Complex.upt	2011-10-13 01:13:39 +0600
@@ -3,8 +3,9 @@
 id     "Main window class name" classname = PACKAGE;
 select("No layouts", "Generate layout file", "Main window has layout", "Main window has OK/Cancel")
        "Layout" lay = 2;
-option "Imagelist file"         iml;
-option "Multithreaded"          mt;
+option "Imagelist file" iml;
+option "Multithreaded" mt;
+option "Use SSE2" sse2 = 1;
 
 @@<:PACKAGE:>.h
 #ifndef _<:PACKAGE:>_<:PACKAGE:>_h
@@ -27,7 +28,6 @@
 };
 
 #endif
-
 @@main.cpp
 #include "<:PACKAGE:>.h"
 
@@ -43,7 +43,6 @@
 {
 	<:classname:>().Run();
 }
-
 @@<:PACKAGE:>.lay
 ??lay
 
@@ -51,7 +50,6 @@
 	<:?lay == 3:>ITEM(Button, ok, SetLabel("OK").RightPosZ(90, 80).BottomPosZ(4, 22))
 	ITEM(Button, cancel, SetLabel("Cancel").RightPosZ(4, 80).BottomPosZ(4, 22))<:.:>
 END_LAYOUT
-
 @@<:PACKAGE:>.iml
 ??iml
 
@@ -67,4 +65,4 @@
 ;
 
 mainconfig
-	"" = <:?mt:>"GUI MT SSE2"<:/:>"GUI SSE2"<:.:>;
+	"" = "GUI<:?mt:> MT<:.:><:?sse2:> SSE2<:.:>";
diff -ruN uppsrc.orig/CtrlLib/Normal.upt uppsrc/CtrlLib/Normal.upt
--- uppsrc.orig/CtrlLib/Normal.upt	2011-02-16 10:12:56 +0600
+++ uppsrc/CtrlLib/Normal.upt	2011-10-13 01:13:45 +0600
@@ -2,6 +2,7 @@
 
 option "Create header" header;
 option "Multithreaded" mt;
+option "Use SSE2" sse2 = 1;
 
 @@<:PACKAGE:>.h
 ??header
@@ -13,14 +14,12 @@
 using namespace Upp;
 
 #endif
-
 @@main.cpp
 #include <:?header:>"<:PACKAGE:>.h"<:/:><CtrlLib/CtrlLib.h><:.:>
 
 GUI_APP_MAIN
 {
 }
-
 @@<:PACKAGE:>.upp
 uses
 	CtrlLib;
@@ -30,4 +29,4 @@
 	"main.cpp";
 
 mainconfig
-	"" = <:?mt:>"GUI MT SSE2"<:/:>"GUI SSE2"<:.:>;
+	"" = "GUI<:?mt:> MT<:.:><:?sse2:> SSE2<:.:>";
diff -ruN uppsrc.orig/upt/Console.upt uppsrc/upt/Console.upt
--- uppsrc.orig/upt/Console.upt	2011-02-16 10:12:56 +0600
+++ uppsrc/upt/Console.upt	2011-10-13 01:13:55 +0600
@@ -1,5 +1,7 @@
 template "Console application (no U++)" main;
 
+option "Use SSE2" sse2 = 1;
+
 @@<:PACKAGE:>.cpp
 #include "stdio.h"
 
@@ -7,10 +9,9 @@
 {
 	return 0;
 }
-
 @@<:PACKAGE:>.upp
 file
 	<:PACKAGE:>.cpp;
 
 mainconfig
-	"" = "SSE2";
+	"" = "<:?sse2:>SSE2<:.:>";
diff -ruN uppsrc.orig/upt/SDLCore.upt uppsrc/upt/SDLCore.upt
--- uppsrc.orig/upt/SDLCore.upt	2011-02-16 10:12:56 +0600
+++ uppsrc/upt/SDLCore.upt	2011-10-13 01:14:01 +0600
@@ -5,6 +5,7 @@
 option "Double buffering" doublebuff;
 option "Full screen" fullscreen;
 option "Event loop" loop;
+option "Use SSE2" sse2 = 1;
 
 @@<:PACKAGE:>.h
 ??header
@@ -95,4 +96,4 @@
 library(GCC WIN32) "SDL.dll SDLmain";
 
 mainconfig
-	"" = "SSE2";
+	"" = "<:?sse2:>SSE2<:.:>";
diff -ruN uppsrc.orig/upt/SDLPure.upt uppsrc/upt/SDLPure.upt
--- uppsrc.orig/upt/SDLPure.upt	2011-02-16 10:12:56 +0600
+++ uppsrc/upt/SDLPure.upt	2011-10-13 01:14:06 +0600
@@ -5,6 +5,7 @@
 option "Double buffering" doublebuff;
 option "Full screen" fullscreen;
 option "Event loop" loop;
+option "Use SSE2" sse2 = 1;
 
 @@<:PACKAGE:>.h
 ??header
@@ -88,4 +89,4 @@
 library(GCC WIN32) "SDL.dll SDLmain";
 
 mainconfig
-	"" = "SSE2";
+	"" = "<:?sse2:>SSE2<:.:>";
diff -ruN uppsrc.orig/upt/Win32.upt uppsrc/upt/Win32.upt
--- uppsrc.orig/upt/Win32.upt	2011-02-16 10:12:56 +0600
+++ uppsrc/upt/Win32.upt	2011-10-13 01:14:12 +0600
@@ -3,6 +3,7 @@
 option "Main menu" menu;
 option "Program icon" icon;
 option "Hello World" hello;
+option "Use SSE2" sse2 = 1;
 
 @@resource.h
 <:?icon:>#define IDI_BIG         100
@@ -187,4 +188,4 @@
      <:PACKAGE:>.cpp;
 
 mainconfig
-    "" = "GUI SSE2";
+    "" = "GUI<:?sse2:> SSE2<:.:>";
diff -ruN uppsrc.orig/upt/Win32dll.upt uppsrc/upt/Win32dll.upt
--- uppsrc.orig/upt/Win32dll.upt	2011-02-16 10:12:56 +0600
+++ uppsrc/upt/Win32dll.upt	2011-10-13 01:14:19 +0600
@@ -1,6 +1,7 @@
 template "Win32 DLL project (no U++)" main;
 
 option "Multithreaded" mt;
+option "Use SSE2" sse2 = 1;
 
 @@<:PACKAGE:>.h
 #ifndef _<:PACKAGE:>_<:PACKAGE:>_h
@@ -16,7 +17,6 @@
 #endif
 
 #endif
-
 @@<:PACKAGE:>.cpp
 #include <windows.h>
 #include "<:PACKAGE:>.h"
@@ -35,7 +35,6 @@
 	}
 	return TRUE;
 }
-
 @@<:PACKAGE:>.upp
 library(WIN32) "kernel32 user32 advapi32 shell32 winmm";
 
@@ -46,4 +45,4 @@
 	<:PACKAGE:>.cpp;
 
 mainconfig
-	"" = "DLL SSE2 <:?mt:>MT<:.:>";
+	"" = "DLL<:?mt:> MT<:.:><:?sse2:> SSE2<:.:>";
