Para se desfazer do valor deve-se atribuir uma "?" ou um valor default do campo (0, "", false, etc). Para eliminar a variável eu acredito que somente encerrando a sessão, até hoje não vi outra forma. Eu não sei qual a tua necessidade para eliminar uma variável global, mas uma boa prática é reforçar o nome das variáveis exemplo: def var g-<programa>-<nome> as <tipo> no-undo. g = global programa = programa em que usa a variável, geralmente UPC's nome = nome da variavel em detalhes def var g-CD0204-it-codigo as char no-undo. Desta forma fica mais difícil de repetir os nomes das variáveis. A mesma varável global pode ser definida mais de uma vez desde que com a mesma assinatura ou seja, definição igual de tipo e atributos de definição (no-undo, new global shared, as integer, char, decimals, etc). O que vale na sessão progress é o conteúdo da definição e dos assigns subsequentes...a segunda definição da mesma variável não altera o valor já atribuido anteriormente. exemplo: o programa 1 define a variável "A" com init = "20" e coloca o valor "10" nela através de um assign. o programa 2 define a mesma variável com um init = "20". se feito um display a variável terá o valor "10". o que vale é o valor já atribuido... fonte de teste programa 1 def new global shared var t-1 as char init "a" no-undo. assign t-1 = "b". programa 2 def new global shared var t-1 as char init "a" no-undo. message t-1 view-as alert-box. valor mostrado é "b"