diff --git a/src/syncterm/ooii.c b/src/syncterm/ooii.c
index 688d2f197cdcd3e27dbf6fb3cb1cbca8205c4894..2fae38fa9b513fea45d6b8a9727eee2b40ee3fa3 100644
--- a/src/syncterm/ooii.c
+++ b/src/syncterm/ooii.c
@@ -1729,12 +1729,12 @@ BOOL handle_ooii_code(char *codeStr, int *ooii_mode, char *retbuf, size_t retsiz
 						getBlock(&codeStr,menuBlock);
 						zz=atoi(menuBlock);
 						/* Highest we support is two */
-						if(zz > MAX_OOII_MODE)
-							zz=MAX_OOII_MODE;
-						/* Old versions don't include a number */
+						if(zz >= MAX_OOII_MODE)
+							zz=MAX_OOII_MODE-1;
+						/* Old (1.22) versions don't include a number */
 						if(zz < 1)
 							zz=1;
-						*ooii_mode=zz;
+						*ooii_mode=zz+1;
 						if(strlen(retbuf)+3 < retsize)
 							sprintf(retbuf, "\xaf%d|", zz);
 					}
diff --git a/src/syncterm/ooii.h b/src/syncterm/ooii.h
index b6fe6dd57ec39c4b7687a7908f413a92a365ff3c..ceae9015cf37f0d3b50bf20bb5be8594ed96449c 100644
--- a/src/syncterm/ooii.h
+++ b/src/syncterm/ooii.h
@@ -3,7 +3,7 @@
 
 #include <genwrap.h>
 
-#define MAX_OOII_MODE 2
+#define MAX_OOII_MODE 3
 
 BOOL handle_ooii_code(char *codeStr, int *ooii_mode, char *retbuf, size_t retsize);
 
diff --git a/src/syncterm/ooii_bmenus.c b/src/syncterm/ooii_bmenus.c
index 8d42d0584ffb529b414810727cb346fbfa84a6f9..59b3e555be296c177e8a898db04d09eda09d8d4b 100644
--- a/src/syncterm/ooii_bmenus.c
+++ b/src/syncterm/ooii_bmenus.c
@@ -148,7 +148,6 @@ static const unsigned char ooii_bmenus_5[] = {
 	0x00
 };
 
-#if 0
 /* Menu 6 -- Base Tech Center  */
 static const unsigned char ooii_bmenus_6[] = {
 	0x1B, 0x5B, 0x31, 0x32, 0x43, 0x1B, 0x5B, 0x30, 0x3B, 0x31, 0x3B, 0x33, 0x30, 0x6D, 0xC2, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0x0D, 0x0A, 
@@ -173,9 +172,13 @@ static const unsigned char ooii_bmenus_6[] = {
 	0x1B, 0x5B, 0x31, 0x32, 0x43, 0xB4, 0xC3, 0x1B, 0x5B, 0x31, 0x37, 0x43, 0xDE, 0x1B, 0x5B, 0x31, 0x33, 0x43, 0xDE, 0x1B, 0x5B, 0x30, 0x6D, 0x0D, 0x0A, 
 
 };
-#else
+
 /* Menu 6 -- Base Tech Center  */
-static const unsigned char ooii_bmenus_6[] = {
+/*
+ * For v1.22+
+ * Added R)egnsvacs Launch
+ */
+static const unsigned char ooii_bmenus_new_6[] = {
 	0x1B, 0x5B, 0x31, 0x32, 0x43, 0x1B, 0x5B, 0x30, 0x3B, 0x31, 0x3B, 0x33, 0x30, 0x6D, 0xC2, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0xC1, 0xC2, 0x0D, 0x0A, 
 	0x1B, 0x5B, 0x31, 0x32, 0x43, 0xC3, 0xB4, 0x0D, 0x0A, 
 	0x1B, 0x5B, 0x31, 0x32, 0x43, 0xB4, 0xC3, 0x0D, 0x0A, 
@@ -198,9 +201,8 @@ static const unsigned char ooii_bmenus_6[] = {
 	0x1B, 0x5B, 0x31, 0x32, 0x43, 0xB4, 0xC3, 0x1B, 0x5B, 0x31, 0x37, 0x43, 0xDE, 0x1B, 0x5B, 0x31, 0x33, 0x43, 0xDE, 0x1B, 0x5B, 0x30, 0x6D, 0x0D, 0x0A, 
 
 };
-#endif
 
-const unsigned char *ooii_bmenus[2][6] = {
+const unsigned char *ooii_bmenus[3][6] = {
 	{
 		ooii_bmenus_1,
 		ooii_bmenus_2,
@@ -215,6 +217,14 @@ const unsigned char *ooii_bmenus[2][6] = {
 		ooii_bmenus_3,
 		ooii_bmenus_4,
 		ooii_bmenus_5,
-		ooii_bmenus_6,
+		ooii_bmenus_new_6,
+	}
+	,{
+		ooii_bmenus_1,
+		ooii_bmenus_2,
+		ooii_bmenus_3,
+		ooii_bmenus_4,
+		ooii_bmenus_5,
+		ooii_bmenus_new_6,
 	}
 };
diff --git a/src/syncterm/ooii_bmenus.h b/src/syncterm/ooii_bmenus.h
index 1eeb9d1b60566a47ad93a1d93aae1d9227545338..5ca71fed86e6b4c75cf0f648644a61364f07f1d0 100644
--- a/src/syncterm/ooii_bmenus.h
+++ b/src/syncterm/ooii_bmenus.h
@@ -1,6 +1,6 @@
 #ifndef _BMENUS_H_
 #define _BMENUS_H_
 
-extern const unsigned char *ooii_bmenus[2][6];
+extern const unsigned char *ooii_bmenus[3][6];
 
 #endif
diff --git a/src/syncterm/ooii_cmenus.c b/src/syncterm/ooii_cmenus.c
index 7774731f52625d192e26c8943a794ae2d73af88e..b14d3fc473fdbf7a87c2721992e00a3c187350da 100644
--- a/src/syncterm/ooii_cmenus.c
+++ b/src/syncterm/ooii_cmenus.c
@@ -29,6 +29,10 @@ static const unsigned char ooii_cmenus_1[] = {
 };
 
 /* ComplexMenus - Menu1 */
+/*
+ * For v1.22+
+ * Includes W)astelands in the ANSI
+ */
 static const unsigned char ooii_cmenus_new_1[] = {
 	0x1B, 0x5B, 0x33, 0x33, 0x43, 0x1B, 0x5B, 0x30, 0x3B, 0x31, 0x3B, 0x33, 0x32, 0x6D, 0x2A, 0x29, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x74, 0x6F, 0x20, 0x42, 0x42, 0x53, 0x0D, 0x0A, 
 	0x1B, 0x5B, 0x33, 0x33, 0x43, 0x1B, 0x5B, 0x33, 0x37, 0x6D, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0x0D, 0x0A, 
@@ -134,7 +138,11 @@ static const unsigned char ooii_cmenus_4[] = {
 	0x00
 };
 
-/* Menu4 */
+/* Complex HQ */
+/*
+ * For 1.23+
+ * Added B)riefing Room
+ */
 static const unsigned char ooii_cmenus_new_4[] = {
 	0x1B, 0x5B, 0x34, 0x33, 0x43, 0x1B, 0x5B, 0x30, 0x3B, 0x31, 0x6D, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0x0D, 0x0A, 
 	0x1B, 0x5B, 0x34, 0x33, 0x43, 0x1B, 0x5B, 0x34, 0x37, 0x6D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1B, 0x5B, 0x34, 0x30, 0x6D, 0x0D, 0x0A, 
@@ -193,7 +201,7 @@ static const unsigned char ooii_cmenus_5[] = {
 	0x1B, 0x5B, 0x36, 0x31, 0x43, 0x1B, 0x5B, 0x33, 0x33, 0x6D, 0x65, 0x64, 0x72, 0x61, 0x77, 0x20, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6E, 0x1B, 0x5B, 0x30, 0x6D, 0x0D, 0x0A, 
 
 };
-const unsigned char *ooii_cmenus[2][5] = {
+const unsigned char *ooii_cmenus[3][5] = {
 	{
 		ooii_cmenus_1,
 		ooii_cmenus_2,
@@ -201,6 +209,13 @@ const unsigned char *ooii_cmenus[2][5] = {
 		ooii_cmenus_4,
 		ooii_cmenus_5,
 	}
+	,{
+		ooii_cmenus_new_1,
+		ooii_cmenus_2,
+		ooii_cmenus_3,
+		ooii_cmenus_4,
+		ooii_cmenus_5,
+	}
 	,{
 		ooii_cmenus_new_1,
 		ooii_cmenus_2,
diff --git a/src/syncterm/ooii_cmenus.h b/src/syncterm/ooii_cmenus.h
index 1b39470cd88a4391c60a0e82905bf3bf98ac41e8..5533a06d7838355e769bb6bfbdb8da7195afaa84 100644
--- a/src/syncterm/ooii_cmenus.h
+++ b/src/syncterm/ooii_cmenus.h
@@ -1,6 +1,6 @@
 #ifndef _CMENUS_H_
 #define _CMENUS_H_
 
-extern const unsigned char *ooii_cmenus[2][5];
+extern const unsigned char *ooii_cmenus[3][5];
 
 #endif
diff --git a/src/syncterm/ooii_logons.c b/src/syncterm/ooii_logons.c
index f453198aa0ba3a51b83cef98c14a892fbb9dfc26..83c54ccdd7ba311a63c836573510096a5e6fb08d 100644
--- a/src/syncterm/ooii_logons.c
+++ b/src/syncterm/ooii_logons.c
@@ -479,7 +479,7 @@ static const unsigned char ooii_logon_10[] = {
 	0x1B, 0x5B, 0x36, 0x39, 0x43, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0x1B, 0x5B, 0x30, 0x6D, 0x0D, 0x0A, 
 
 };
-const unsigned char *ooii_logon[2][10] = {
+const unsigned char *ooii_logon[3][10] = {
 	{
 		ooii_logon_1,
 		ooii_logon_2,
@@ -504,4 +504,16 @@ const unsigned char *ooii_logon[2][10] = {
 		ooii_logon_9,
 		ooii_logon_10,
 	}
+	,{
+		ooii_logon_1,
+		ooii_logon_2,
+		ooii_logon_3,
+		ooii_logon_4,
+		ooii_logon_5,
+		ooii_logon_6,
+		ooii_logon_7,
+		ooii_logon_8,
+		ooii_logon_9,
+		ooii_logon_10,
+	}
 };
diff --git a/src/syncterm/ooii_logons.h b/src/syncterm/ooii_logons.h
index 2e7d9a2336925d4c55be6e860c42a7f431d04bdf..03deb5e2181e21267173d99bd930b3bd270299dc 100644
--- a/src/syncterm/ooii_logons.h
+++ b/src/syncterm/ooii_logons.h
@@ -1,6 +1,6 @@
 #ifndef _LOGON_H_
 #define _LOGON_H_
 
-extern const unsigned char *ooii_logon[2][10];
+extern const unsigned char *ooii_logon[3][10];
 
 #endif
diff --git a/src/syncterm/term.c b/src/syncterm/term.c
index b2fa7655bf525aaca2fdaf9ec6ea6a63723b09d0..cecdb81292d8c0a7b0d7fb2bb3aca0c2ad0e933a 100644
--- a/src/syncterm/term.c
+++ b/src/syncterm/term.c
@@ -184,10 +184,13 @@ void update_status(struct bbslist *bbs, int speed, int ooii_mode)
 		strcat(nbuf, " (DrWy)");
 	switch(ooii_mode) {
 	case 1:
-		strcat(nbuf, " (OO][ 1.20)");
+		strcat(nbuf, " (OOTerm)");
 		break;
 	case 2:
-		strcat(nbuf, " (OO][ 1.23)");
+		strcat(nbuf, " (OOTerm1)");
+		break;
+	case 3:
+		strcat(nbuf, " (OOTerm2)");
 		break;
 	}
 	switch(cio_api.mode) {