Hi David, I see that the (newButton) is using two globals in creating a new +Person, but the +TextField's use +E/R, which connects GUI components to database objects. If I am not mistaken, +E/R uses a locking mechanism to stop several users from changing objects at the same time. Usually, there is an (editButton) involved to allow a user to lock the object, make modifications and release the lock once the modifications are done. You can find examples of this in the demo app shipped with the PicoLisp distribution.
Try changing these lines: (gui '(+E/R +TextField) '(name : home obj) 40 "Name") (gui '(+E/R +TextField) '(email : home obj) 40 "Email") To this: (gui '(+Var +TextField) '*Name 40 "Name") (gui '(+Var +TextField) '*EMail 40 "Email") This uses a '+Var' prefix class to connect the gui components to a variable instead. This variable is used by (newButton) to create a new object. Best regards, Mattias