diff --git a/lib/router.js b/lib/router.js
index <HASH>..<HASH> 100644
--- a/lib/router.js
+++ b/lib/router.js
@@ -284,8 +284,7 @@ mergeInto(Router.prototype, {
 
   /**
    * Executes a transition to the given path, checking all transition hooks
-   * along the way to ensure the transition is valid. Returns a promise for the
-   * transition object that resolves after the transition is complete.
+   * along the way to ensure the transition is valid.
    *
    * Note: This method may only be called on top-level routers that have already
    * been rendered (see Router#renderComponent).
@@ -336,7 +335,7 @@ mergeInto(Router.prototype, {
 
     var transition = new Transition(currentPath);
 
-    return checkTransitionHooks(this._lastMatches, matches, transition).then(function () {
+    checkTransitionHooks(this._lastMatches, matches, transition).then(function () {
       if (transition.isCancelled()) {
         var reason = transition.cancelReason;
 
@@ -346,8 +345,6 @@ mergeInto(Router.prototype, {
         this._lastMatches = matches;
         this._component.setProps(getComponentProps(currentPath, matches));
       }
-
-      return transition;
     }.bind(this), function (error) {
       // There was an unrecoverable error, so let the user know!
       // TODO: Should we provide a hook so users can handle this?
transitionTo breaks the promise chain

Since we're effectively breaking the promise chain in the rejection
handler, we should just break the promise chain cleanly.