Fix formatter usage of filter(). Bug #3800.
diff --git a/Lib/formatter.py b/Lib/formatter.py
index bb8ad20..60e60f1 100644
--- a/Lib/formatter.py
+++ b/Lib/formatter.py
@@ -255,7 +255,7 @@
 
     def push_margin(self, margin):
         self.margin_stack.append(margin)
-        fstack = filter(None, self.margin_stack)
+        fstack = [m for m in self.margin_stack if m]
         if not margin and fstack:
             margin = fstack[-1]
         self.writer.new_margin(margin, len(fstack))
@@ -263,7 +263,7 @@
     def pop_margin(self):
         if self.margin_stack:
             del self.margin_stack[-1]
-        fstack = filter(None, self.margin_stack)
+        fstack = [m for m in self.margin_stack if m]
         if fstack:
             margin = fstack[-1]
         else:
diff --git a/Misc/NEWS b/Misc/NEWS
index 7dde481..d22d038 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -96,6 +96,8 @@
 Library
 -------
 
+- Issue #3800: fix filter() related bug in formatter.py.
+
 - Issue #874900: fix behaviour of threading module after a fork.
 
 - Issue #3535: zipfile couldn't read some zip files larger than 2GB.