diff --git a/js/ui/panel.js b/js/ui/panel.js
index 3380cb6..8277db9 100644
--- a/js/ui/panel.js
+++ b/js/ui/panel.js
@@ -99,13 +99,39 @@ Panel.prototype = {
         this._setStruts();
         global.screen.connect('notify::n-workspaces',
             function() {
+               let screen = global.screen;
+               for (let i = 0; i < screen.n_workspaces; i++) {
+                   let workspace = screen.get_workspace_by_index(i);
+                   workspace.connect('window-added',
+                       function(o, win) {
+                          win.connect('notify::fullscreen',
+                              function(o) {
+                                 if (o.fullscreen)
+                                     me._box.show();
+                                 else
+                                     me._box.hide();
+                              });
+                       });
+                }
                 me._setStruts();
             });
-
         global.stage.add_actor(this._box);
 
         // Start the clock
         this._updateClock();
+        Mainloop.timeout_add(1000, function() {
+            let win_list = global.get_windows ();
+            for (let i = 0; i < win_list.length; i++) {
+                win_list[i].get_meta_window().connect('notify::fullscreen',
+                    function(o) {
+                       if (o.fullscreen)
+                           me._box.show();
+                       else
+                           me._box.hide();
+                    });
+            }
+            return false;
+        });
     },
 
     // Struts determine the area along each side of the screen that is reserved
