code: function (segment) {
  		
  		var lowSegment,
  			highSegment = [],
  			i = segment.length,
  			baseGetSegmentPath = Series.prototype.getSegmentPath,
  			point,
  			linePath,
  			lowerPath,
  			options = this.options,
  			step = options.step,
  			higherPath;
  			
  		// Remove nulls from low segment
  		lowSegment = HighchartsAdapter.grep(segment, function (point) {
  			return point.plotLow !== null;
  		});
  		
  		// Make a segment with plotX and plotY for the top values
  		while (i--) {
  			point = segment[i];
  			if (point.plotHigh !== null) {
  				highSegment.push({
  					plotX: point.plotHighX || point.plotX, // plotHighX is for polar charts
  					plotY: point.plotHigh
  				});
  			}
  		}
  		
  		// Get the paths
  		lowerPath = baseGetSegmentPath.call(this, lowSegment);
  		if (step) {
  			if (step === true) {
  				step = 'left';
  			}
  			options.step = { left: 'right', center: 'center', right: 'left' }[step]; // swap for reading in getSegmentPath
  		}
  		higherPath = baseGetSegmentPath.call(this, highSegment);
  		options.step = step;
  		
  		// Create a line on both top and bottom of the range
  		linePath = [].concat(lowerPath, higherPath);
  		
  		// For the area path, we need to change the 'move' statement into 'lineTo' or 'curveTo'
  		if (!this.chart.polar) {
  			higherPath[0] = 'L'; // this probably doesn't work for spline
  		}
  		this.areaPath = this.areaPath.concat(lowerPath, higherPath);
  		
  		return linePath;
  	}
docs: Extend the line series' getSegmentPath method by applying the segment
  path to both lower and higher values of the range