diff --git a/contents/code/tilelist.js b/contents/code/tilelist.js
index 5492ffc641c30bc4693dcec5350ebb10c8fa33f4..ea605c948622f1efe3990a32b9a821f0b13bd337 100644
--- a/contents/code/tilelist.js
+++ b/contents/code/tilelist.js
@@ -131,7 +131,11 @@ TileList.prototype.addClient = function(client) {
         // If not, create a new tile
         this._addTile(client);
     }
-	client.keepBelow = true;
+	if (client.fullScreen) {
+		client.keepAbove = true;
+	} else {
+		client.keepBelow = true;
+	}
 };
 
 TileList.prototype.retile = function() {
diff --git a/contents/code/tiling.js b/contents/code/tiling.js
index d6879a1389b34dc408d64cbdc3704596fb775985..6cd8b0f7b7414185b71c7d0648f2c8097d9e8e14 100644
--- a/contents/code/tiling.js
+++ b/contents/code/tiling.js
@@ -180,11 +180,6 @@ Tiling.prototype._updateAllTiles = function() {
     // Set the position/size of all tiles
 	if (this.active) {
 		for (var i = 0; i < this.layout.tiles.length; i++) {
-			if (this.tiles[i].clients[0].fullScreen) {
-				this.layout.tiles[i]._savedGeometry = this.layout.tiles[i].rectangle;
-				this.layout.tiles[i].rectangle = this.layout.screenRectangle;
-				break;
-			}
 			var currentRect = this.tiles[i].clients[0].geometry;
 			var newRect = this.layout.tiles[i].rectangle;
 			if (! newRect) {
@@ -192,10 +187,12 @@ Tiling.prototype._updateAllTiles = function() {
 			}
 			// Is this necessary?
 			if (currentRect.x != newRect.x
-                || currentRect.y != newRect.y
-                || currentRect.width != newRect.width
-                || currentRect.height != newRect.height) {
-				this.tiles[i].setGeometry(newRect);
+				|| currentRect.y != newRect.y
+				|| currentRect.width != newRect.width
+				|| currentRect.height != newRect.height) {
+				if (! this.tiles[i].clients[0].fullScreen) {
+					this.tiles[i].setGeometry(newRect);
+				}
 			}
 		}
 	}