diff --git a/package.json b/package.json
index c04928eec..49d4c8043 100644
--- a/package.json
+++ b/package.json
@@ -42,7 +42,7 @@
     "scratch-render": "latest",
     "script-loader": "0.7.0",
     "stats.js": "0.17.0",
-    "tap": "10.1.0",
+    "tap": "10.1.1",
     "travis-after-all": "1.4.4",
     "webpack": "2.2.1",
     "webpack-dev-server": "2.3.0"
diff --git a/src/sprites/rendered-target.js b/src/sprites/rendered-target.js
index 9bbc20b23..3e1e06e12 100644
--- a/src/sprites/rendered-target.js
+++ b/src/sprites/rendered-target.js
@@ -167,15 +167,20 @@ RenderedTarget.prototype.setXY = function (x, y) {
     }
     var oldX = this.x;
     var oldY = this.y;
-    this.x = x;
-    this.y = y;
     if (this.renderer) {
+        var position = this.renderer.getFencedPositionOfDrawable(this.drawableID, [x, y]);
+        this.x = position.x;
+        this.y = position.y;
+
         this.renderer.updateDrawableProperties(this.drawableID, {
-            position: [this.x, this.y]
+            position: position
         });
         if (this.visible) {
             this.runtime.requestRedraw();
         }
+    } else {
+        this.x = x;
+        this.y = y;
     }
     this.emit(RenderedTarget.EVENT_TARGET_MOVED, this, oldX, oldY);
     this.runtime.spriteInfoReport(this);