diff --git a/src/cmd/troff/fns.h b/src/cmd/troff/fns.h
index d04fd03..922a3a8 100644
--- a/src/cmd/troff/fns.h
+++ b/src/cmd/troff/fns.h
@@ -172,7 +172,6 @@
 void	caseev(void);
 void	envcopy(Env *e1, Env *e2);
 void	caseel(void);
-void caseei(void);
 void	caseie(void);
 void	casexif(void);
 void	caseif(void);
diff --git a/src/cmd/troff/n5.c b/src/cmd/troff/n5.c
index 72f9bbb..2c7d328 100644
--- a/src/cmd/troff/n5.c
+++ b/src/cmd/troff/n5.c
@@ -8,7 +8,7 @@
 #include "fns.h"
 #include "ext.h"
 
-int	iflist[NIF];	/* whether 'else' is true */
+int	iflist[NIF];
 int	ifx;
 int	ifnum = 0;	/* trying numeric expression for .if or .ie condition */
 
@@ -612,16 +612,6 @@
 }
 
 
-void caseei(void)
-{
-	if (--ifx < 0) {
-		ifx = 0;
-		iflist[0] = 0;
-	}
-	caseif1(1);
-	ifx++;
-}
-
 void caseel(void)
 {
 	if (--ifx < 0) {
@@ -631,6 +621,7 @@
 	caseif1(2);
 }
 
+
 void caseie(void)
 {
 	if (ifx >= NIF) {
@@ -638,11 +629,11 @@
 		ifx = 0;
 		edone(040);
 	}
-	iflist[ifx] = 1;
 	caseif1(1);
 	ifx++;
 }
 
+
 void caseif(void)
 {
 	caseif1(0);
@@ -654,7 +645,7 @@
 	int notflag, true;
 	Tchar i;
 
-	if (x == 2) {	/* .el */
+	if (x == 2) {
 		notflag = 0;
 		true = iflist[ifx];
 		goto i1;
@@ -700,10 +691,8 @@
 	}
 i1:
 	true ^= notflag;
-	if (x == 1) {	/* .ie or .ei */
-		true = true && iflist[ifx];
-		iflist[ifx] = iflist[ifx] && !true;
-	}
+	if (x == 1)
+		iflist[ifx] = !true;
 	if (true) {
 i2:
 		while ((cbits(i = getch())) == ' ')
diff --git a/src/cmd/troff/ni.c b/src/cmd/troff/ni.c
index 27a0ff3..a80cec6 100644
--- a/src/cmd/troff/ni.c
+++ b/src/cmd/troff/ni.c
@@ -70,7 +70,6 @@
 	C(PAIR('n', 'r'), casenr),
 	C(PAIR('i', 'f'), caseif),
 	C(PAIR('i', 'e'), caseie),
-	C(PAIR('e', 'i'), caseei),
 	C(PAIR('e', 'l'), caseel),
 	C(PAIR('p', 'o'), casepo),
 	C(PAIR('t', 'l'), casetl),
