 			
 			tempRange.setRange(0, 0); // bar starts at zero
 			
-			var allMissing:Boolean = true;
-			
-			for (var i:int = 0; i < _heightColumns.length; i++)
+			
+			if (_groupingMode == PERCENT_STACK)
 			{
-				var column:IAttributeColumn = _heightColumns[i] as IAttributeColumn;
-				if (_groupingMode == PERCENT_STACK)
+				tempRange.begin = 0;
+				tempRange.end = 100;
+			}
+			else
+			{
+				var allMissing:Boolean = true;
+				for (var i:int = 0; i < _heightColumns.length; i++)
 				{
-					tempRange.begin = 0;
-					tempRange.end = 100;
-				}
-				else
-				{
+					var column:IAttributeColumn = _heightColumns[i] as IAttributeColumn;
 					var height:Number = column.getValueFromKey(recordKey, Number);
 					// if height is missing, use mean value
 					if (isNaN(height))

						//////////////////////////
						// END draw graphics
						//////////////////////////
					}						
					
					if (_groupingMode != GROUP)
					{
						// the next bar starts on top of this bar
						if (height >= 0)
							yMin = yMax;
						else
							yNegativeMin = yNegativeMax;
					}
					//------------------------------------
					// END code to draw one bar segment
					//------------------------------------

					if (height >= 0)
					{
						//normalizing to 100% stack
						if (_groupingMode == PERCENT_STACK && totalHeight)
							yMax = yMin + (100 / totalHeight * height);
						else
							yMax = yMin + height;
					}
					else
					{
						if (_groupingMode == PERCENT_STACK && totalHeight)
							yNegativeMax = yNegativeMin + (100 / totalHeight * height);
						else
							yNegativeMax = yNegativeMin + height;
