       if _.isEmpty @props.permittedProperties
         _.cloneDeep @props.value
       else
-        (_.pick v, @props.permittedProperties for v in @props.value)
+        (_.pick v, @props.permittedProperties for v in @props.value when v isnt null)
 
     @props.onChange @props.name, value
 

        onClick: @addItem

    # Due to the fact that we have a destroyWorkaround we can't trust that the index
    # represents the true representation of the first element. We'll store the first non-destoryed
    # index so that children can conditionally render remove buttons etc.
    firstPersistedRecordIndex = (index for prop,index in @props.value when prop?._destroy isnt '1' or not prop.val)?[0]

    # since the real "index" includes destroyed items, pass a displayIndex showing where this item is
    # in the list of subforms being displayed. Not zero-indexed (since it's for display purposes)

  isEqual:   require 'lodash/lang/isEqual'
  isEmpty:   require 'lodash/lang/isEmpty'
  cloneDeep: require 'lodash/lang/cloneDeep'
  first:     require 'lodash/array/first'
  last:      require 'lodash/array/last'
  pick:      require 'lodash/object/pick'
  compact:   require 'lodash/array/compact'
  reject:    require 'lodash/collection/reject'
