     resources.each (r) => @__raiseOnTypeMismatch(r)
 
     persistDelete =
-      if !@owner.newResource?()
-        @__persistDelete(resources.select((r) -> r.persisted?()).toArray())
+      if !@owner.newResource?() && (persistedResources = resources.select((r) -> r.persisted?())).size()
+        @__persistDelete(persistedResources.toArray())
       else
         $.when(resources)
 

    resources.each (r) => @__raiseOnTypeMismatch(r)

    persistConcat =
      if !@owner.newResource?()
        # TODO: Do something better with unpersisted resources, like saving them
        @__persistConcat(resources.select((r) -> r.persisted?()).toArray())
      else
        $.when(resources)


    resources.each (r) => @__raiseOnTypeMismatch(r)

    persistAssignment =
      if save && !@owner.newResource?() && (persistedResources = resources.select((r) -> r.persisted?())).size()
        @__persistAssignment(persistedResources.toArray())
      else
        $.when(resources)

