         save = $qqueue.bindAdd (roleId, pointId) =>
             $el.find(".popover").popover().close()
 
-            # Hell starts here
-            us = angular.copy($model.$modelValue)
             points = _.clone($model.$modelValue.points, true)
             points[roleId] = pointId
-            us.setAttr('points', points)
+
+            us = $model.$modelValue.clone()
             us.points = points
-            us.total_points = calculateTotalPoints(us)
             $model.$setViewValue(us)
-            # Hell ends here
 
             onSuccess = ->
                 $confirm.notify("success")

            return $scope.project.my_permissions.indexOf("modify_us") != -1

        render = (us) ->
            totalPoints = if us.total_points? then us.total_points else "?"
            computableRoles = _.filter($scope.project.roles, "computable")

            roles = _.map computableRoles, (role) ->

                us.revert()
                $model.$setViewValue(us)

            $repo.save(us).then(onSuccess, onError)

        $el.on "click", ".total.clickable", (event) ->
            event.preventDefault()
