       continue unless group.name is groupName
       before = clone group.metadata
       for item, val of metadata
-        group.metadata[item] = val
+        if val?
+          group.metadata[item] = val
+        else
+          delete group.metadata[item]
       @emit 'changeGroup', group, before
     @checkTransactionEnd()
 

    node.metadata = {} unless node.metadata

    for item, val of metadata
      node.metadata[item] = val

    @emit 'changeNode', node, before
    @checkTransactionEnd()

    before = clone @inports[publicPort].metadata
    @inports[publicPort].metadata = {} unless @inports[publicPort].metadata
    for item, val of metadata
      if val?
        @inports[publicPort].metadata[item] = val
      else
        delete @inports[publicPort].metadata[item]
    @emit 'changeInport', publicPort, @inports[publicPort], before
    @checkTransactionEnd()

