diff -r 9ff477cd79da Lib/warnings.py --- a/Lib/warnings.py Mon Mar 02 07:41:00 2015 +0200 +++ b/Lib/warnings.py Mon Mar 02 17:13:27 2015 +0200 @@ -52,11 +52,12 @@ "lineno must be an int >= 0" item = (action, re.compile(message, re.I), category, re.compile(module), lineno) - if append: - filters.append(item) - else: - filters.insert(0, item) - _filters_mutated() + if item not in filters: + if append: + filters.append(item) + else: + filters.insert(0, item) + _filters_mutated() def simplefilter(action, category=Warning, lineno=0, append=False): """Insert a simple entry into the list of warnings filters (at the front).