   Parameters:
     table   _table widget"
              [table]
-             (let [ ctx @context 
-                    fca-ctx (get-context ctx)
-                    attrs (attributes fca-ctx)
-                    inc (incidence fca-ctx)
-                    get-cross (fn [obj att] (if (contains? inc [obj att])
-                                              "X" " "))
-                    attr-count (count attrs)
-                    objs (objects fca-ctx)
-                    obj-count (count objs)
-                    attrib-cols @attr-cols
-                    object-rows @obj-rows]
-               (do
+             (dosync
+               (let [ ctx @context 
+                      fca-ctx (get-context ctx)
+                      attrs (attributes fca-ctx)
+                      inc (incidence fca-ctx)
+                      get-cross (fn [obj att] (if (contains? inc [obj att])
+                                                "X" " "))
+                      attr-count (count attrs)
+                      objs (objects fca-ctx)
+                      obj-count (count objs)
+                      attrib-cols @attr-cols
+                      object-rows @obj-rows]
+                 (do
                    (!! table :set-column-count (+ 1 attr-count))
                    (!! table :set-row-count (+ 1 obj-count))
                    (!! table :set-index-at 0 0 "")

                                 (let [ row (object-rows o)
                                        column (attrib-cols a)]
                                   (!! table :set-index-at row column 
                                     (get-cross o a))))))))))

           


  Parameters:
    context-in     _context or editable context"
  ([context-in]
    (let [ self (promise)
           ctx (get-context context-in)
           obj (objects ctx)
           attr (attributes ctx)
           inc (incidence ctx)
