diff --git a/src/cordova.js b/src/cordova.js
index 1a56400..c88e2f9 100644
--- a/src/cordova.js
+++ b/src/cordova.js
@@ -234,9 +234,7 @@
             }
         } catch (err) {
             var msg = 'Error in ' + (isSuccess ? 'Success' : 'Error') + ' callbackId: ' + callbackId + ' : ' + err;
-            console && console.log && console.log(msg);
-            console && console.log && err.stack && console.log(err.stack);
-            cordova.fireWindowEvent('cordovacallbackerror', { 'message': msg });
+            cordova.fireWindowEvent('cordovacallbackerror', { 'message': msg, 'error': err });
             throw err;
         }
     },
diff --git a/test/test.cordova.js b/test/test.cordova.js
new file mode 100644
index 0000000..1b0d6e0
--- /dev/null
+++ b/test/test.cordova.js
@@ -0,0 +1,43 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+describe('cordova', function () {
+    describe('callbackFromNative', function () {
+        it('Test#001 : should fire the cordovacallbackerror event if the callback throws', function () {
+            var id = 'myID';
+            var testError = new Error('errorMessage');
+            cordova.callbacks[id] = {
+                success: function () { throw testError; }
+            };
+
+            spyOn(cordova, 'fireWindowEvent');
+
+            expect(function () {
+                cordova.callbackFromNative(id, true, cordova.callbackStatus.OK, null, false);
+            }).toThrow(testError);
+
+            expect(cordova.fireWindowEvent).toHaveBeenCalledWith('cordovacallbackerror', {
+                message: jasmine.stringMatching('Error in Success callbackId: ' + id),
+                error: testError
+            });
+        });
+    });
+});
