Index: GUITVProgressControl.cs
===================================================================
--- GUITVProgressControl.cs	(revision 28260)
+++ GUITVProgressControl.cs	(working copy)
@@ -329,18 +329,34 @@
         }
       }
 
+      int iWidthLeft = _imageLeft.TextureWidth;
+      int iHeightLeft = _imageLeft.TextureHeight;
+      int iWidthRight = _imageRight.TextureWidth;
+      int iHeightRight = _imageRight.TextureHeight;
+
+      GUIGraphicsContext.ScaleHorizontal(ref iWidthLeft);
+      GUIGraphicsContext.ScaleHorizontal(ref iWidthRight);
+      GUIGraphicsContext.ScaleVertical(ref iHeightLeft);
+      GUIGraphicsContext.ScaleVertical(ref iHeightRight);
+
       int xPos = _positionX;
       _imageLeft.SetPosition(xPos, _positionY);
 
-      xPos = _positionX + _imageLeft.TextureWidth;
+      _imageLeft.Height = iHeightLeft;
+      _imageLeft.Width = iWidthLeft;
+
+      xPos = _positionX + iWidthLeft;
       _imageMid.SetPosition(xPos, _positionY);
 
-      int iWidth = _width - (_imageLeft.TextureWidth + _imageRight.TextureWidth);
+      int iWidth = _width - (iWidthLeft + iWidthRight);
       _imageMid.Width = iWidth;
 
-      xPos = iWidth + _positionX + _imageLeft.TextureWidth;
+      xPos = iWidth + _positionX + iWidthLeft;
       _imageRight.SetPosition(xPos, _positionY);
 
+      _imageRight.Height = iHeightRight;
+      _imageRight.Width = iWidthRight;
+
       _imageLeft.Render(timePassed);
       _imageRight.Render(timePassed);
       _imageMid.Render(timePassed);
@@ -352,7 +368,7 @@
       int iCurPos = 0;
       // render fillbkg
 
-      xPos = _positionX + _imageLeft.TextureWidth + _fillBackgroundOffsetX;
+      xPos = _positionX + iWidthLeft + _fillBackgroundOffsetX;
       _imageFillBackground.Width = iWidth;
       _imageFillBackground.Height = _imageMid.TextureHeight - _fillBackgroundOffsetY * 2;
       _imageFillBackground.SetPosition(xPos, _positionY + _fillBackgroundOffsetY);
@@ -361,7 +377,7 @@
       // render first color
       int xoff = GUIGraphicsContext.ScaleHorizontal(3);
 
-      xPos = _positionX + _imageLeft.TextureWidth + _fillBackgroundOffsetX + xoff;
+      xPos = _positionX + iWidthLeft + _fillBackgroundOffsetX + xoff;
       int yPos = _imageFillBackground.YPosition + (_imageFillBackground.Height / 2) - (_fillBackgroundHeight / 2);
       if (yPos < _positionY)
       {
@@ -435,7 +451,7 @@
       GUIGraphicsContext.ScaleVertical(ref posy1);
       for (int i = 0; i <= 100; i += 10)
       {
-        float fpos = (float)_positionX + _imageLeft.TextureWidth + posx1;
+        float fpos = (float)_positionX + iWidthLeft + posx1;
         fWidth = (float)(iWidth - posx2);
         fWidth /= 100.0f;
         fWidth *= (float)i;
@@ -460,19 +476,24 @@
       _imageTick.Render(timePassed);
 
       // render bottom
-      xPos = _imageTop.XPosition + (_imageTop.TextureWidth / 2) - (_imageBottom.TextureWidth / 2);
-      _imageBottom.SetPosition(xPos, _positionY + _imageMid.TextureHeight);
+      _imageBottom.Height = GUIGraphicsContext.ScaleVertical(_imageBottom.TextureHeight);
+      _imageBottom.Width = GUIGraphicsContext.ScaleHorizontal(_imageBottom.TextureWidth);
+
+      xPos = _imageTop.XPosition + (_imageTop.Width / 2) - (_imageBottom.Width / 2);
+      _imageBottom.SetPosition(xPos, _positionY + _imageMid.Height);
       _imageBottom.Render(timePassed);
 
 
       //render logo
+      _imageLogo.Height = GUIGraphicsContext.ScaleVertical(_imageLogo.TextureHeight);
+      _imageLogo.Width = GUIGraphicsContext.ScaleHorizontal(_imageLogo.TextureWidth);
       float fx = (float)_imageBottom.XPosition;
-      fx += (((float)_imageBottom.TextureWidth) / 2f);
+      fx += (((float)_imageBottom.Width) / 2f);
       fx -= (((float)_imageLogo.TextureWidth) / 2f);
 
       float fy = (float)_imageBottom.YPosition;
-      fy += (((float)_imageBottom.TextureHeight) / 2f);
-      fy -= (((float)_imageLogo.TextureHeight) / 2f);
+      fy += (((float)_imageBottom.Height) / 2f);
+      fy -= (((float)_imageLogo.Height) / 2f);
       _imageLogo.SetPosition((int)fx, (int)fy);
       _imageLogo.Render(timePassed);
 
@@ -489,8 +510,8 @@
           _font.GetTextExtent(strText, ref fW, ref fH);
           fW /= 2.0f;
           fH /= 2.0f;
-          fWidth = ((float)_imageTop.TextureWidth) / 2.0f;
-          fHeight = ((float)_imageTop.TextureHeight) / 2.0f;
+          fWidth = ((float)_imageTop.Width) / 2.0f;
+          fHeight = ((float)_imageTop.Height) / 2.0f;
           fWidth -= fW;
           fHeight -= fH;
           _font.DrawText((float)_imageTop.XPosition + fWidth, (float)2 + _imageTop.YPosition + fHeight, _textColor,
@@ -505,8 +526,8 @@
           _font.GetTextExtent(strText, ref fW, ref fH);
           fW /= 2.0f;
           fH /= 2.0f;
-          fWidth = ((float)_imageLeft.TextureWidth) / 2.0f;
-          fHeight = ((float)_imageLeft.TextureHeight) / 2.0f;
+          fWidth = ((float)iWidthLeft) / 2.0f;
+          fHeight = ((float)iHeightLeft) / 2.0f;
           fWidth -= fW;
           fHeight -= fH;
           _font.DrawText((float)_positionX + fWidth, (float)_positionY + fHeight, _textColor, strText,
@@ -520,8 +541,8 @@
           _font.GetTextExtent(strText, ref fW, ref fH);
           fW /= 2.0f;
           fH /= 2.0f;
-          fWidth = ((float)_imageRight.TextureWidth) / 2.0f;
-          fHeight = ((float)_imageRight.TextureHeight) / 2.0f;
+          fWidth = ((float)iWidthRight) / 2.0f;
+          fHeight = ((float)iHeightRight) / 2.0f;
           fWidth -= fW;
           fHeight -= fH;
           _font.DrawText((float)_imageRight.XPosition + fWidth, (float)_imageRight.YPosition + fHeight, _textColor,
