diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c
index 432f94f..4ff2b98 100644
--- a/Parser/tokenizer.c
+++ b/Parser/tokenizer.c
@@ -983,15 +983,7 @@
 		break;
 	case '<':
 		switch (c2) {
-		case '>':
-			{
-#ifndef PGEN
-				if (Py_Py3kWarningFlag)
-					PyErr_WarnEx(PyExc_DeprecationWarning,
-						"<> not supported in 3.x", 1);
-#endif
-				return NOTEQUAL;
-			}
+		case '>':	return NOTEQUAL;
 		case '=':	return LESSEQUAL;
 		case '<':	return LEFTSHIFT;
 		}
@@ -1485,6 +1477,16 @@
 	{
 		int c2 = tok_nextc(tok);
 		int token = PyToken_TwoChars(c, c2);
+#ifndef PGEN
+		if (token == NOTEQUAL && c == '<') {
+			if (PyErr_WarnExplicit(PyExc_DeprecationWarning,
+					       "<> not supported in 3.x",
+					       tok->filename, tok->lineno,
+					       NULL, NULL)) {
+				return ERRORTOKEN;
+			}
+		}
+#endif
 		if (token != OP) {
 			int c3 = tok_nextc(tok);
 			int token3 = PyToken_ThreeChars(c, c2, c3);
diff --git a/Python/ast.c b/Python/ast.c
index 5555cf7..9354b59 100644
--- a/Python/ast.c
+++ b/Python/ast.c
@@ -1336,10 +1336,14 @@
         return Dict(keys, values, LINENO(n), n->n_col_offset, c->c_arena);
     }
     case BACKQUOTE: { /* repr */
-        if (Py_Py3kWarningFlag &&
-            PyErr_Warn(PyExc_DeprecationWarning,
-                "backquote not supported in 3.x") < 0)
-            return NULL;
+        if (Py_Py3kWarningFlag) {
+		if (PyErr_WarnExplicit(PyExc_DeprecationWarning,
+				       "backquote not supported in 3.x",
+				       "<unknown>", LINENO(n),
+				       NULL, NULL)) {
+			; //return NULL;
+		}
+	}
         expr_ty expression = ast_for_testlist(c, CHILD(n, 1));
         if (!expression)
             return NULL;
