diff --git a/index.js b/index.js
index e0382a8a428a09d13922484df2bb348d05c3b6c0..0c5bf3d4416cff9f05e5aee7915c25d0108e4c85 100644
--- a/index.js
+++ b/index.js
@@ -7,5 +7,6 @@ web3.providers.HttpRpcProvider = require('./lib/httprpc');
 web3.providers.QtProvider = require('./lib/qt');
 web3.providers.AutoProvider = require('./lib/autoprovider');
 web3.eth.contract = require('./lib/contract');
+web3.abi = require('./lib/abi');
 
 module.exports = web3;
diff --git a/lib/contract.js b/lib/contract.js
index 67fb407ad9608766fa669aa31b6bf5e4344027cf..abd8e5bdfda9586e40aada413ab150b5222fcc9d 100644
--- a/lib/contract.js
+++ b/lib/contract.js
@@ -79,7 +79,8 @@ var contract = function (address, desc) {
                     extra.to = address;
                     return abi.methodSignature(desc, method.name).then(function (signature) {
                         extra.data = signature.slice(0, 2 + ETH_METHOD_SIGNATURE_LENGTH * 2) + parsed;
-                        web3._currentAbi = desc;
+                        web3._currentContractAbi = desc;
+                        web3._currentContractAddress = address;
                         return web3.eth.transact(extra).then(onSuccess);
                     });
                 }