diff --git a/libtmux/server.py b/libtmux/server.py
index <HASH>..<HASH> 100644
--- a/libtmux/server.py
+++ b/libtmux/server.py
@@ -264,7 +264,13 @@ class Server(TmuxRelationalObject, EnvironmentMixin):
 
         # clear up empty dict
         panes = [
-            dict((k, v) for k, v in window.items() if v) for window in panes
+            dict(
+                (k, v) for k, v in window.items()
+                if v or
+                k == 'pane_current_path'
+            )   # preserve pane_current_path, in case it entered a new process
+                # where we may not get a cwd from.
+            for window in panes
         ]
 
         if self._panes:
don't empty pane_current_path if new one is empty

sometimes even repeated polling for a new pane path over 1,
3, 5 seconds won't return anything in some instances.

In older cases, we'd remove the pane_current_path from the pane's
_info, now we'll keep the last non-empty result libtmux found until
a new one fills it.