diff --git a/src/inputs/date/date.js b/src/inputs/date/date.js
index d9e0684..4d6d8b3 100644
--- a/src/inputs/date/date.js
+++ b/src/inputs/date/date.js
@@ -26,13 +26,13 @@ $(function(){
 
     var Date = function (options) {
         this.init('date', options, Date.defaults);
-        this.initPicker();
+        this.initPicker(options, Date.defaults);
     };
 
     $.fn.editableutils.inherit(Date, $.fn.editabletypes.abstractinput);    
     
     $.extend(Date.prototype, {
-        initPicker: function() {
+        initPicker: function(options, defaults) {
             //'format' is set directly from settings or data-* attributes
 
             //by default viewformat equals to format
@@ -42,7 +42,7 @@ $(function(){
             
             //overriding datepicker config (as by default jQuery extend() is not recursive)
             //since 1.4 datepicker internally uses viewformat instead of format. Format is for submit only
-            this.options.datepicker = $.extend({}, Date.defaults.datepicker, this.options.datepicker, {
+            this.options.datepicker = $.extend({}, defaults.datepicker, options.datepicker, {
                 format: this.options.viewformat
             });
             
diff --git a/src/inputs/date/datefield.js b/src/inputs/date/datefield.js
index 7177ffa..55737d7 100644
--- a/src/inputs/date/datefield.js
+++ b/src/inputs/date/datefield.js
@@ -7,7 +7,7 @@ Automatically shown in inline mode.
 
     var DateField = function (options) {
         this.init('datefield', options, DateField.defaults);
-        this.initPicker();
+        this.initPicker(options, DateField.defaults);
     };
 
     $.fn.editableutils.inherit(DateField, $.fn.editabletypes.date);    
@@ -28,12 +28,14 @@ Automatically shown in inline mode.
             this.$input.datepicker(this.options.datepicker);
             
             //need to disable original event handlers
-            this.$field.off('focus keyup keydown');
+            this.$field.off('focus keydown');
             
-            //shadow update value of datepicker
+            //update value of datepicker
             this.$field.keyup($.proxy(function(){
-               this.$input.data('datepicker').date = this.input2value();  
+               this.$input.removeData('date');
+               this.$input.datepicker('update');
             }, this));
+            
         },   
         
        value2str: function(value) {
@@ -76,7 +78,14 @@ Automatically shown in inline mode.
         @default ''
         **/         
         inputclass: '',
-        datepicker: {autoclose: true}, 
+        
+        datepicker: {
+            weekStart: 0,
+            startView: 0,
+            autoclose: true,
+            keyboardNavigation: false
+        },
+         
         clear: false
     });
     
diff --git a/test/main.js b/test/main.js
index f9e3e00..667c8e3 100644
--- a/test/main.js
+++ b/test/main.js
@@ -27,16 +27,27 @@ require(["loader", jqurl], function(loader) {
     });
     
     function addTests(config) {
+        var date;
+        
+        switch(params.f) {
+            case 'bootstrap':
+              date = ['test/unit/datefield', 'test/unit/date'];
+              break;
+               
+            default:  
+              date = ['test/unit/dateui'];
+        }
+        
         var tests = [
             'test/mocks',
             'test/unit/common',
             'test/unit/text',
             'test/unit/textarea',
             'test/unit/select',
-            'test/unit/checklist',
-            (params.f === 'bootstrap') ?  'test/unit/date' :  'test/unit/dateui',            
-            'test/unit/api'
+            'test/unit/checklist'
        ];
+       tests = tests.concat(date);
+       tests.push('test/unit/api');
        
        for(var i=0; i<tests.length-1; i++) {
           config.shim[tests[i+1]] = [tests[i]]; 
diff --git a/test/unit/date.js b/test/unit/date.js
index aaf5830..f4c6929 100644
--- a/test/unit/date.js
+++ b/test/unit/date.js
@@ -1,13 +1,19 @@
 $(function () {         
    
-   var dpg, f = 'dd.mm.yyyy';
+   var dpg, f = 'dd.mm.yyyy', mode;
    
    module("date", {
         setup: function(){
             fx = $('#async-fixture');
             dpg = $.fn.datepicker.DPGlobal;
             $.support.transition = false;
-        }
+            mode = $.fn.editable.defaults.mode;
+            $.fn.editable.defaults.mode = 'popup';
+        },
+        teardown: function() {
+            //restore mode
+            $.fn.editable.defaults.mode = mode;
+        }        
     });
     
     function frmt(date, format) {
diff --git a/test/unit/datefield.js b/test/unit/datefield.js
new file mode 100644
index 0000000..14f548b
--- /dev/null
+++ b/test/unit/datefield.js
@@ -0,0 +1,109 @@
+$(function () {         
+   
+   var dpg, f = 'dd.mm.yyyy', mode;
+   
+   module("datefield", {
+        setup: function(){
+            fx = $('#async-fixture');
+            dpg = $.fn.datepicker.DPGlobal;
+            $.support.transition = false;
+            
+            mode = $.fn.editable.defaults.mode;
+            $.fn.editable.defaults.mode = 'inline';
+        },
+        teardown: function() {
+            //restore mode
+            $.fn.editable.defaults.mode = mode;
+        }         
+    });
+    
+    function frmt(date, format) {
+       return dpg.formatDate(date, dpg.parseFormat(format), 'en');  
+    }
+     
+    asyncTest("container should contain input with value and save new entered date", function () {
+
+        var d = '15.05.1984',
+            e = $('<a href="#" data-type="date" data-pk="1" data-url="post-date.php">'+d+'</a>').appendTo(fx).editable({
+                format: f,
+                viewformat: f,
+                datepicker: {
+                   weekStart: 1 
+                }        
+            }),
+            nextD = '16.05.1984',
+            finalD = '17.05.1984';
+        
+          $.mockjax({
+              url: 'post-date.php',
+              response: function(settings) {
+                  equal(settings.data.value, finalD, 'submitted value correct');            
+              }
+          });
+       
+        equal(frmt(e.data('editable').value, 'dd.mm.yyyy'), d, 'value correct');
+            
+        e.click();
+        var p = tip(e);
+        ok(p.find('input').is(':visible'), 'input exists');
+        
+        equal(p.find('input').val(), d, 'date set correct');
+        
+        //open picker
+        p.find('span').click();
+        var picker = p.find('span').parent().data().datepicker.picker;
+        
+        ok(picker.is(':visible'), 'picker shown');
+        ok(picker.find('td.day.active').is(':visible'), 'active day is visible');
+        equal(picker.find('td.day.active').text(), 15, 'day shown correct');
+        equal(picker.find('th.dow').eq(0).text(), 'Mo', 'weekStart correct');
+
+        //set new day by picker
+        picker.find('td.day.active').next().click();
+        ok(!picker.is(':visible'), 'picker closed'); 
+        
+        equal(p.find('input').val(), nextD, 'next day set correct');
+                                              
+        p.find('input').val(finalD).trigger('keyup');
+        
+        equal(picker.find('td.day.active').text(), 17, 'picker active date updated');
+    
+        //submit
+        p.find('form').submit();
+    
+        setTimeout(function() {          
+           ok(!p.is(':visible'), 'popover closed');
+           ok(!picker.is(':visible'), 'picker closed');
+           equal(frmt(e.data('editable').value, f), finalD, 'new date saved to value');
+           equal(e.text(), finalD, 'new text shown');            
+           e.remove();    
+           start();  
+        }, timeout); 
+        
+     }); 
+      
+     
+     test("viewformat, init by text", function () {
+         
+        var dview = '15/05/1984',
+            d = '1984-05-15',
+            e = $('<a href="#" data-type="date" data-pk="1" data-url="post-date1.php">'+dview+'</a>').appendTo('#qunit-fixture').editable({
+                format: 'yyyy-mm-dd',
+                viewformat: 'dd/mm/yyyy'
+            }),
+            nextD = '1984-05-16',
+            nextDview = '16/05/1984';
+        
+          equal(frmt(e.data('editable').value, 'yyyy-mm-dd'), d, 'value correct');
+     });       
+    
+     test("viewformat, init by value", function () {
+        var dview = '15/05/1984',
+            d = '1984-05-15',
+            e = $('<a href="#" data-type="date" data-pk="1" data-format="yyyy-mm-dd" data-viewformat="dd/mm/yyyy"  data-value="'+d+'"></a>').appendTo('#qunit-fixture').editable();
+        
+        equal(frmt(e.data('editable').value, 'yyyy-mm-dd'), d, 'value correct');
+        equal(e.text(), dview, 'text correct');
+     });    
+    
+});
\ No newline at end of file