diff --git a/extensions/spine/CCSkeletonWebGLRenderCmd.js b/extensions/spine/CCSkeletonWebGLRenderCmd.js
index af232c1dbb..bbe4cd805d 100644
--- a/extensions/spine/CCSkeletonWebGLRenderCmd.js
+++ b/extensions/spine/CCSkeletonWebGLRenderCmd.js
@@ -290,8 +290,8 @@ proto._uploadMeshAttachmentData = function(attachment, slot, premultipliedAlpha,
     for (var i = 0, n = vertices.length; i < n; i += 8) {
         var vx = vertices[i],
             vy = vertices[i + 1];
-        var x = vx * wa + vy * wc + wx,
-            y = vx * wb + vy * wd + wy;
+        var x = vx * wa + vy * wb + wx,
+            y = vx * wc + vy * wd + wy;
         var r = vertices[i + 2] * nodeR,
             g = vertices[i + 3] * nodeG,
             b = vertices[i + 4] * nodeB,
diff --git a/extensions/spine/Spine.js b/extensions/spine/Spine.js
index c845c19f41..9da03c2974 100644
--- a/extensions/spine/Spine.js
+++ b/extensions/spine/Spine.js
@@ -4241,12 +4241,13 @@ var spine;
 			var scale = this.scale;
 			attachment.worldVerticesLength = verticesLength;
 			var vertices = map.vertices;
-			if (verticesLength == vertices.length) {
+			var scaledVertices = spine.Utils.toFloatArray(vertices);
+			if (verticesLength == scaledVertices.length) {
 				if (scale != 1) {
 					for (var i = 0, n = vertices.length; i < n; i++)
-						vertices[i] *= scale;
+						scaledVertices[i] *= scale;
 				}
-				attachment.vertices = spine.Utils.toFloatArray(vertices);
+				attachment.vertices = scaledVertices;
 				return;
 			}
 			var weights = new Array();