diff --git a/Block.js b/Block.js
index 9854aa0..c7c255c 100644
--- a/Block.js
+++ b/Block.js
@@ -182,7 +182,7 @@ function spec(b) {
         var i2 = Math.min(i + 1, size - 1);
         var a = tree[j + i];
         var b = tree[j + i2];
-        tree.push(util.twoSha256(a.concat(b)));
+        tree.push(util.twoSha256(buffertools.concat(a,b)));
       }
       j += size;
     }
diff --git a/Script.js b/Script.js
index 5d9856c..b174b5a 100644
--- a/Script.js
+++ b/Script.js
@@ -382,7 +382,7 @@ function spec(b) {
   Script.prototype.writeBytes = function (data)
   {
     var newSize = this.buffer.length + prefixSize(data.length) + data.length;
-    this.buffer = Buffer.concat([this.buffer, encodeLen(data.length), data]);
+    this.buffer = buffertools.concat(this.buffer, encodeLen(data.length), data);
     this.chunks.push(data);
   };
 
diff --git a/ScriptInterpreter.js b/ScriptInterpreter.js
index 515e0be..83253e9 100644
--- a/ScriptInterpreter.js
+++ b/ScriptInterpreter.js
@@ -299,11 +299,11 @@ function spec(b) {
 
         case OP_CAT:
           // (x1 x2 -- out)
-          var v1 = this.stackTop(2);
-          var v2 = this.stackTop(1);
+          v1 = this.stackTop(2);
+          v2 = this.stackTop(1);
           this.stackPop();
           this.stackPop();
-          this.stack.push(v1.concat(v2));
+          this.stack.push(buffertools.concat(v1, v2));
           break;
 
         case OP_SUBSTR:
diff --git a/Transaction.js b/Transaction.js
index 685b0a5..9fc5052 100644
--- a/Transaction.js
+++ b/Transaction.js
@@ -17,7 +17,7 @@ function spec(b) {
   var VerificationError = error.VerificationError;
   var MissingSourceError = error.MissingSourceError;
 
-  var COINBASE_OP = buffertools.concat(util.NULL_HASH, new Buffer("FFFFFFFF", 'hex'));
+  var COINBASE_OP = buffertools.concat(util.NULL_HASH, new Buffer('FFFFFFFF', 'hex'));
 
   function TransactionIn(data) {
     if ("object" !== typeof data) {
@@ -44,7 +44,7 @@ function spec(b) {
     var qbuf = new Buffer(4);
     qbuf.writeUInt32LE(this.q, 0);
 
-    return Buffer.concat([this.o, slen, this.s, qbuf]);
+    return buffertools.concat(this.o, slen, this.s, qbuf);
   };
 
   TransactionIn.prototype.getOutpointHash = function getOutpointHash() {
@@ -88,7 +88,7 @@ function spec(b) {
 
   TransactionOut.prototype.serialize = function serialize() {
     var slen = util.varIntBuf(this.s.length);
-    return Buffer.concat([this.v, slen, this.s]);
+    return buffertools.concat(his.v, slen, this.s);
   };
 
   function Transaction(data) {
@@ -537,7 +537,7 @@ function spec(b) {
     var buffer = bytes.buffer();
 
     // Append hashType
-    buffer = buffer.concat(new Buffer([parseInt(hashType), 0, 0, 0]));
+    buffer = buffertools.concat(buffer, new Buffer([parseInt(hashType), 0, 0, 0]));
 
     return util.twoSha256(buffer);
   };
@@ -612,7 +612,7 @@ function spec(b) {
       var voutBuf = new Buffer(4);
       voutBuf.writeUInt32LE(vout, 0);
   
-      txin.o = Buffer.concat([hash, voutBuf]);
+      txin.o = buffertools.concat(hash, voutBuf);
   
       txobj.ins.push(txin);
     });