diff --git a/modules/plugin_dbui/cfgsvc.py b/modules/plugin_dbui/cfgsvc.py
index abe227206507a6ce03e12b14da8875c3db58e217..b7b3c358417dad360a80c6cccae712a3625c93ae 100644
--- a/modules/plugin_dbui/cfgsvc.py
+++ b/modules/plugin_dbui/cfgsvc.py
@@ -345,34 +345,52 @@ class CfgSvc(object):
         return di
     
     
-    def _get_json_store(self, table):
+    def _get_json_store(self, tablename):
         """ Generate configuration object for JSON stores 
         required by the gridPanel widget.
         
         """
 
-        di = {"table": table,
-              "idProperty": encode_field(table,'id'),
+        di = {"table": tablename,
+              "idProperty": encode_field(tablename,'id'),
               "dbFields": [],
               "fields": []}
 
-        for field in self._db[table].fields:
-            if field in di["dbFields"]:
+        for fieldname in self._db[tablename].fields:
+            
+            if fieldname in di["dbFields"]:
                 raise Exception, FIELD_IN_DBFIELD 
             
-            di["dbFields"].append([table, field])
-            di["fields"].append(encode_field(table, field))
+            # encode field name and default value are in the store
+            field = self._db[tablename][fieldname]
+            field_cfg = {'name': encode_field(tablename, fieldname)}
+            if field.default:
+                field_cfg['defaultValue'] = str(field.default)
+            
+            di["dbFields"].append([tablename, fieldname])
+            di["fields"].append(field_cfg)
             
-            if self._is_foreign_field(table, field):
+            if self._is_foreign_field(tablename, fieldname):
+                
                 if "where" not in di: di["where"] = []
-                k_table, k_field, k_key = self._get_foreign_data(table, field)
+                k_tablename, k_fieldname, k_key = self._get_foreign_data(tablename, fieldname)
                 
-                if k_field in di["dbFields"]:
+                if k_fieldname in di["dbFields"]:
                     raise Exception, FIELD_IN_DBFIELD
                 
-                di["dbFields"].append([k_table, k_field])
-                di["fields"].append(encode_field(k_table, k_field))
-                di["where"].append("[%s.%s] == [%s.%s]" % (table, field, k_table, k_key))
+                # encode field name and default value are in the store
+                k_field = self._db[k_tablename][k_fieldname]
+                k_field_cfg = {'name': encode_field(k_tablename, k_fieldname)}
+                
+                # retrieve the default value for the foreign key
+                if field.default:
+                    row = self._db(self._db[k_tablename].id == field.default).select().first()
+                    if row:
+                        k_field_cfg['defaultValue'] = row[k_fieldname]
+                
+                di["dbFields"].append([k_tablename, k_fieldname])
+                di["fields"].append(k_field_cfg)
+                di["where"].append("[%s.%s] == [%s.%s]" % (tablename, fieldname, k_tablename, k_key))
                 
         return di