             domain = [domainLow, domainHigh]
             domain = domain.reverse() if axis.indexOf("y") is 0
 
-            domainCompare = vars[axis].scale.viz.domain()
+            domainCompare = testScale.domain()
             domainCompare = domainCompare[1] - domainCompare[0]
 
             unless domainCompare


      else

        rangeMax = vars[axis].scale.viz.range()[1]
        maxSize  = vars.axes.scale.range()[1]

        domainLow = vars[axis].scale.viz.invert -maxSize*1.5
        domainHigh  = vars[axis].scale.viz.invert rangeMax + maxSize*1.5

        domain = [domainLow, domainHigh]
        domain = domain.reverse() if axis.indexOf("y") is 0

        domainCompare = vars[axis].scale.viz.domain()
        domainCompare = domainCompare[1] - domainCompare[0]

        unless domainCompare


  if vars[axis].scale.value isnt "share" and !vars[axis].range.value and vars[axis].reset

    testScale = vars[axis].scale.viz.copy().clamp(false)

    if axis is vars.axes.discrete

      domain = testScale.domain()

      if typeof domain[0] is "string"
        i = domain.length
        while i >= 0
          domain.splice(i, 0, "d3plus_buffer_"+i)
          i--
        range = testScale.range()
        range = buckets d3.extent(range), domain.length
        vars[axis].scale.viz.domain(domain).range(range)

