diff --git a/guacamole-common-js/src/main/resources/guacamole.js b/guacamole-common-js/src/main/resources/guacamole.js
index <HASH>..<HASH> 100644
--- a/guacamole-common-js/src/main/resources/guacamole.js
+++ b/guacamole-common-js/src/main/resources/guacamole.js
@@ -302,7 +302,7 @@ function GuacamoleClient(display, tunnel) {
                 cursorImage = image;
                 cursorHotspotX = x;
                 cursorHotspotY = y;
-                redrawCursor();
+                redrawCursor(cursorRectX, cursorRectY);
             };
             image.src = "data:image/png;base64," + data
 
diff --git a/guacamole-common-js/src/main/resources/layer.js b/guacamole-common-js/src/main/resources/layer.js
index <HASH>..<HASH> 100644
--- a/guacamole-common-js/src/main/resources/layer.js
+++ b/guacamole-common-js/src/main/resources/layer.js
@@ -112,7 +112,7 @@ function Layer(width, height) {
 
         // Draw all pending updates.
         var update;
-        while ((update = updates[0]).hasHandler()) {
+        while ((update = updates[0]) != null && update.hasHandler()) {
             update.handle();
             updates.shift();
         }
Fixed error in call to redrawCursor() and layer