diff --git a/ivette/src/dome/renderer/controls/buttons.tsx b/ivette/src/dome/renderer/controls/buttons.tsx
index e15fd0dbf4ef2131ed0f3103942862b8b1fae1c7..461524e30851a5c20e8b4812f4602e8bc3558f90 100644
--- a/ivette/src/dome/renderer/controls/buttons.tsx
+++ b/ivette/src/dome/renderer/controls/buttons.tsx
@@ -555,10 +555,9 @@ export interface FieldProps {
    Text Field.
 */
 export const Field = (props: FieldProps): JSX.Element => {
-  const [current, setCurrent] = React.useState<string>();
   const { className = '', onChange, onEdited, value = '' } = props;
+  const [current, setCurrent] = React.useState<string>(value);
   const disabled = onChange ? DISABLED(props) : true;
-  const theValue = current ?? value;
   const ONCHANGE = (evt: React.ChangeEvent<HTMLInputElement>): void => {
     const text = evt.target.value || '';
     setCurrent(text);
@@ -567,11 +566,11 @@ export const Field = (props: FieldProps): JSX.Element => {
   const ONKEYPRESS = (evt: React.KeyboardEvent): void => {
     switch (evt.key) {
       case 'Enter':
-        setCurrent(undefined);
-        if (onChange && current) onChange(current);
+        if (onChange) onChange(current);
         break;
       case 'Escape':
-        setCurrent(undefined);
+        setCurrent(value);
+        if (onChange) onChange(value);
         break;
       default:
         break;
@@ -582,12 +581,12 @@ export const Field = (props: FieldProps): JSX.Element => {
       id={props.id}
       type="text"
       autoFocus={!disabled && props.autoFocus}
-      value={theValue}
+      value={current}
       className={`dome - xField ${className} `}
       style={props.style}
       disabled={disabled}
       placeholder={props.placeholder}
-      onKeyPress={ONKEYPRESS}
+      onKeyDown={ONKEYPRESS}
       onChange={ONCHANGE}
     />
   );
diff --git a/ivette/src/renderer/Laboratory.tsx b/ivette/src/renderer/Laboratory.tsx
index 238b5030ae608ab7cb22d4c0798faf07e9edb8a5..6818c58b6308bdadde0428fd1157752f4c0521c7 100644
--- a/ivette/src/renderer/Laboratory.tsx
+++ b/ivette/src/renderer/Laboratory.tsx
@@ -358,8 +358,10 @@ function CustomViews(props: CustomViewsProps): JSX.Element {
         builtin: false,
       };
       setCustoms(customs);
-      if (current) shapes[current] = shape;
+      const newShape = isCurrent ? shape : shapes[id];
+      shapes[newId] = newShape;
       setLocal({ current: newId, shapes });
+      setShape(newShape);
       setEdited(newId);
     };