diff --git a/src/element/editable-element.js b/src/element/editable-element.js
index 1a20c7b..3e723ee 100644
--- a/src/element/editable-element.js
+++ b/src/element/editable-element.js
@@ -449,22 +449,13 @@ Makes editable any HTML element on the page. Applied as jQuery method.
                     $.ajax($.extend({
                         url: config.url, 
                         data: values, 
-                        type: 'POST',                        
-                        dataType: 'json'
+                        type: 'POST'                        
                     }, config.ajaxOptions))
                     .success(function(response) {
                         //successful response 
-                        if(typeof response === 'object' && response.id) {
-                            $elems.editable('option', 'pk', response.id); 
-                            $elems.removeClass('editable-unsaved');
-                            if(typeof config.success === 'function') {
-                                config.success.apply($elems, arguments);
-                            } 
-                        } else { //server-side validation error
-                           if(typeof config.error === 'function') {
-                                config.error.apply($elems, arguments);
-                           }
-                        }
+                        if(typeof config.success === 'function') {
+                            config.success.apply($elems, arguments);
+                        } 
                     })
                     .error(function(){  //ajax error
                         if(typeof config.error === 'function') {
diff --git a/test/unit/api.js b/test/unit/api.js
index ca7a1d9..f38583c 100644
--- a/test/unit/api.js
+++ b/test/unit/api.js
@@ -212,7 +212,7 @@ $(function () {
         equal(e.text(), 'abcd', 'text set correctly (by object)');        
      });    
      
-      asyncTest("'submit' method: client and server validation", function () {
+      asyncTest("'submit' method: client and server validation errors", function () {
         var ev1 = 'ev1',
             ev2 = 'ev2',
             e1v = 'e1v',
@@ -236,15 +236,22 @@ $(function () {
                 };  
             }
         });
+        
+        $.mockjax({
+            url: 'new.php',
+            response: function(settings) {
+               ok(false, 'should not submit to new.php');
+            }
+        });        
  
         $(fx).find('.new').editable('submit', {
-            url: 'new.php',
+            url: 'new.php', 
             error: function(data) {
                ok(data.errors, 'errors defined');
                equal(data.errors.text, 'invalid', 'client validation error ok');
             }
         });
-       
+        
         //change value to pass client side validation
         e.click();
         var p = tip(e);
@@ -261,15 +268,21 @@ $(function () {
                 start(); 
             },
             ajaxOptions: {
-                type: 'PUT'
+                type: 'PUT',
+                dataType: 'json'
             }
-        });       
+        }); 
+        
+        setTimeout(function() {
+             e.remove();    
+             e1.remove();    
+             start();  
+        }, timeout);                 
        
      });                  
         
         
      asyncTest("'submit' method: server error", function () {
-       expect(2);  
         var ev1 = 'ev1',
             e1v = 'e1v',
             e = $('<a href="#" class="new" data-type="text" data-url="post.php" data-name="text">'+ev1+'</a>').appendTo(fx).editable(),
@@ -278,7 +291,10 @@ $(function () {
        $(fx).find('.new').editable('submit', {
             url: 'error.php',
             error: function(data) {
-                ok(!data.errors, 'no client errors');
+                equal(this[0], $(fx).find('.new')[0], 'success context ok');
+                equal(this[1], $(fx).find('.new')[1], 'success context2 ok');                
+
+                equal(data.status, 500, 'status 500 ok');
                 equal(data.responseText, 'customtext', 'server error ok');
                 
                 e.remove();
@@ -290,7 +306,6 @@ $(function () {
      });       
      
      asyncTest("'submit' method: success", function () {
-       expect(7);  
         var ev1 = 'ev1',
             e1v = 'e1v',
             pk = 123,
@@ -302,20 +317,16 @@ $(function () {
             response: function(settings) {
                 equal(settings.data.text, ev1, 'first value ok');
                 equal(settings.data.text1, e1v, 'second value ok');
-                this.responseText = {id: pk};  
+                this.responseText = 'response-body';  
             }
         });            
             
        $(fx).find('.new').editable('submit', {
             url: 'new-success.php',
             success: function(data) {
-                equal(e.data('editable').options.pk, pk, 'pk1 ok'); 
-                ok(!e.hasClass('editable-changed'), 'no "editable-changed" class'); 
-                
-                equal(e1.data('editable').options.pk, pk, 'pk2 ok'); 
-                ok(!e1.hasClass('editable-changed'), 'no "editable-changed" class'); 
-                
-                equal(data.id, pk, 'server result id ok');
+                equal(this[0], $(fx).find('.new')[0], 'success context ok');
+                equal(this[1], $(fx).find('.new')[1], 'success context2 ok');
+                equal(data, 'response-body', 'response body ok');
                 
                 e.remove();
                 e1.remove();