diff --git a/lib/transactions.js b/lib/transactions.js
index <HASH>..<HASH> 100644
--- a/lib/transactions.js
+++ b/lib/transactions.js
@@ -60,12 +60,11 @@ function Transactions(client) {
  * @param {number}  [timeLimit] - the maximum number of seconds that
  * the transaction should run before rolling back automatically
  * @param {boolean}  [withState] - whether to return a Transaction
- * object that can track the properties of the transaction 
- * @returns {string|transactions.Transaction} either a string
- * transactionId (the default) or a Transaction object identifying
- * the multi-statement transaction; in the next major release,
- * the Transaction object will become the default and the string
- * transactionId will be deprecated. 
+ * object that can track the properties of the transaction
+ * @returns {transactions.Transaction|string} either a Transaction object
+ * (the default) or string transactionId identifying the multi-statement
+ * transaction; returning a string transactionId is deprecated and
+ * will be removed in the next major release.
  */
 Transactions.prototype.open = function openTransaction() {
   var args   = mlutil.asArray.apply(null, arguments);
@@ -119,7 +118,7 @@ Transactions.prototype.open = function openTransaction() {
       );
   operation.validStatusCodes = [303];
   operation.outputTransform  = openOutputTransform;
-  operation.withState        = withState || false;
+  operation.withState        = withState || true;
 
   return requester.startRequest(operation);
 };
fix(#<I>): make a transaction object the default return value

For a transactions.read()
Also update docs for returning a string transactionID. Returning a string transactionID is deprecated and will be removed in the next major release.