diff --git a/lib/progressbar/progressbar.py b/lib/progressbar/progressbar=
.py
index d4da10ab7..eccc45849 100644
--- a/lib/progressbar/progressbar.py
+++ b/lib/progressbar/progressbar.py
@@ -110,18 +110,25 @@ class ProgressBar(object):
         self.widgets =3D widgets
         self.fd =3D fd
         self.left_justify =3D left_justify
+        self._fd_console =3D None
=20
         self.signal_set =3D False
         if term_width is not None:
             self.term_width =3D term_width
         else:
             try:
+                # Check if given file descriptor is resizable for exampl=
e belong
+                # to a terminal/console as STDOUT or STDERR. If file des=
criptor
+                # is resizable, let's allow to use for self._handle_resi=
ze()
+                # in a dedicated self._fd_console in order to be able to=
 set
+                # temporarily/permanently self.fd to any StringIO or oth=
er
+                # file descriptor later.
+                self._fd_console =3D fd
                 self._handle_resize(None, None)
                 signal.signal(signal.SIGWINCH, self._handle_resize)
                 self.signal_set =3D True
             except (SystemExit, KeyboardInterrupt): raise
