* selectmodule.c: fix (another!) two memory leaks -- this time in list2set
* tokenizer.[ch]: allow continuation without \ inside () [] {}.
diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c
index de80b82..81fedd5 100644
--- a/Modules/selectmodule.c
+++ b/Modules/selectmodule.c
@@ -49,10 +49,12 @@
 	    v = getintvalue(o);
 	} else if ( (filenomethod = getattr(o, "fileno")) != NULL ) {
 	    fno = call_object(filenomethod, NULL);
+	    DECREF(filenomethod);
 	    if ( fno == NULL )
 		return -1;
 	    if ( !is_intobject(fno) ) {
 		err_badarg();
+		DECREF(fno);
 		return -1;
 	    }
 	    v = getintvalue(fno);
diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c
index 38a9e9a..725a2f1 100644
--- a/Parser/tokenizer.c
+++ b/Parser/tokenizer.c
@@ -109,6 +109,7 @@
 	tok->pendin = 0;
 	tok->prompt = tok->nextprompt = NULL;
 	tok->lineno = 0;
+	tok->level = 0;
 	return tok;
 }
 
@@ -390,7 +391,7 @@
 			/* We can't jump back right here since we still
 			   may need to skip to the end of a comment */
 		}
-		if (!blankline) {
+		if (!blankline && tok->level == 0) {
 			if (col == tok->indstack[tok->indent]) {
 				/* No change */
 			}
@@ -483,7 +484,7 @@
 	/* Newline */
 	if (c == '\n') {
 		tok->atbol = 1;
-		if (blankline)
+		if (blankline || tok->level > 0)
 			goto nextline;
 		*p_end = tok->cur - 1; /* Leave '\n' out of the string */
 		return NEWLINE;
@@ -612,6 +613,20 @@
 		tok_backup(tok, c2);
 	}
 	
+	/* Keep track of parenteses nesting level */
+	switch (c) {
+	case '(':
+	case '[':
+	case '{':
+		tok->level++;
+		break;
+	case ')':
+	case ']':
+	case '}':
+		tok->level--;
+		break;
+	}
+	
 	/* Punctuation character */
 	*p_end = tok->cur;
 	return tok_1char(c);
diff --git a/Parser/tokenizer.h b/Parser/tokenizer.h
index 9abc598..bdef859 100644
--- a/Parser/tokenizer.h
+++ b/Parser/tokenizer.h
@@ -46,6 +46,8 @@
 	int pendin;	/* Pending indents (if > 0) or dedents (if < 0) */
 	char *prompt, *nextprompt;	/* For interactive prompting */
 	int lineno;	/* Current line number */
+	int level;	/* () [] {} Parentheses nesting level */
+			/* Used to allow free continuations inside them */
 };
 
 extern struct tok_state *tok_setups PROTO((char *));