jquery.couch.js: db.changes().stop() should abort XMLHTTPRequest
diff --git a/script/jquery.couch.js b/script/jquery.couch.js
index db4e8ef..1a4c3b7 100644
--- a/script/jquery.couch.js
+++ b/script/jquery.couch.js
@@ -412,6 +412,7 @@
           // set up the promise object within a closure for this handler
           var timeout = 100, db = this, active = true,
             listeners = [],
+            xhr = null,
             promise = /** @lends $.couch.db.changes */ {
               /**
                * Add a listener callback
@@ -428,6 +429,9 @@
                */
             stop : function() {
               active = false;
+              if (xhr){
+                xhr.abort();
+              }
             }
           };
           // call each listener when there is a change
@@ -458,7 +462,7 @@
               feed : "longpoll",
               since : since
             });
-            ajax(
+            xhr = ajax(
               {url: db.uri + "_changes"+encodeOptions(opts)},
               options,
               "Error connecting to "+db.uri+"/_changes."
@@ -976,7 +980,7 @@
     ajaxOptions = $.extend(defaultAjaxOpts, ajaxOptions);
     errorMessage = errorMessage || "Unknown error";
     timeStart = (new Date()).getTime();
-    $.ajax($.extend($.extend({
+    return $.ajax($.extend($.extend({
       type: "GET", dataType: "json", cache : maybeUseCache(),
       beforeSend: function(xhr){
         if(ajaxOptions && ajaxOptions.headers){