diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c
index 21583ac..c2cb151 100644
--- a/Parser/tokenizer.c
+++ b/Parser/tokenizer.c
@@ -125,6 +125,11 @@
 	tok->prompt = tok->nextprompt = NULL;
 	tok->lineno = 0;
 	tok->level = 0;
+	tok->filename = NULL;
+	tok->altwarning = 0;
+	tok->alterror = 0;
+	tok->alttabsize = 1;
+	tok->altindstack[0] = 0;
 	return tok;
 }
 
@@ -422,6 +427,24 @@
 }
 
 
+static int
+indenterror(tok)
+	struct tok_state *tok;
+{
+	if (tok->alterror) {
+		tok->done = E_INDENT;
+		tok->cur = tok->inp;
+		return 1;
+	}
+	if (tok->altwarning) {
+		fprintf(stderr, "%s: inconsistent tab/space usage\n",
+			tok->filename);
+		tok->altwarning = 0;
+	}
+	return 0;
+}
+
+
 /* Get next token, after space stripping etc. */
 
 int
@@ -440,15 +463,19 @@
 	/* Get indentation level */
 	if (tok->atbol) {
 		register int col = 0;
+		register int altcol = 0;
 		tok->atbol = 0;
 		for (;;) {
 			c = tok_nextc(tok);
 			if (c == ' ')
-				col++;
-			else if (c == '\t')
+				col++, altcol++;
+			else if (c == '\t') {
 				col = (col/tok->tabsize + 1) * tok->tabsize;
+				altcol = (altcol/tok->alttabsize + 1)
+					* tok->alttabsize;
+			}
 			else if (c == '\014') /* Control-L (formfeed) */
-				col = 0; /* For Emacs users */
+				col = altcol = 0; /* For Emacs users */
 			else
 				break;
 		}
@@ -469,6 +496,10 @@
 		if (!blankline && tok->level == 0) {
 			if (col == tok->indstack[tok->indent]) {
 				/* No change */
+				if (altcol != tok->altindstack[tok->indent]) {
+					if (indenterror(tok))
+						return ERRORTOKEN;
+				}
 			}
 			else if (col > tok->indstack[tok->indent]) {
 				/* Indent -- always one */
@@ -478,8 +509,13 @@
 					tok->cur = tok->inp;
 					return ERRORTOKEN;
 				}
+				if (altcol <= tok->altindstack[tok->indent]) {
+					if (indenterror(tok))
+						return ERRORTOKEN;
+				}
 				tok->pendin++;
 				tok->indstack[++tok->indent] = col;
+				tok->altindstack[tok->indent] = altcol;
 			}
 			else /* col < tok->indstack[tok->indent] */ {
 				/* Dedent -- any number, must be consistent */
@@ -495,6 +531,10 @@
 					tok->cur = tok->inp;
 					return ERRORTOKEN;
 				}
+				if (altcol != tok->altindstack[tok->indent]) {
+					if (indenterror(tok))
+						return ERRORTOKEN;
+				}
 			}
 		}
 	}
diff --git a/Parser/tokenizer.h b/Parser/tokenizer.h
index 837bdca..a47b537 100644
--- a/Parser/tokenizer.h
+++ b/Parser/tokenizer.h
@@ -62,6 +62,12 @@
 	int lineno;	/* Current line number */
 	int level;	/* () [] {} Parentheses nesting level */
 			/* Used to allow free continuations inside them */
+	/* Stuff for checking on different tab sizes */
+	char *filename;	/* For error messages */
+	int altwarning;	/* Issue warning if alternate tabs don't match */
+	int alterror;	/* Issue error if alternate tabs don't match */
+	int alttabsize;	/* Alternate tab spacing */
+	int altindstack[MAXINDENT];	/* Stack of alternate indents */
 };
 
 extern struct tok_state *PyTokenizer_FromString Py_PROTO((char *));
