     else
       new Trix.LocationRange start, end
 
-    @setDOMRange(locationRange)
-    @updateCurrentLocationRange(locationRange)
+    if locationRange = @setDOMRange(locationRange)
+      @updateCurrentLocationRange(locationRange)
+      locationRange
 
   setLocationRangeFromPoint: (point) ->
     locationRange = @getLocationRangeAtPoint(point)

      else
        @findContainerAndOffsetForLocation(locationRange.end)

    range = document.createRange()
    range.setStart(rangeStart...)
    range.setEnd(rangeEnd...)

      # https://code.google.com/p/chromium/issues/detail?id=423170
      # https://code.google.com/p/chromium/issues/detail?id=138439
      defer(applyRange)

    locationRange

  createLocationRangeFromDOMRange: (range) ->
    return unless range? and @rangeWithinElement(range)
