diff --git a/src/lib/progress-bar/_progress-bar-theme.scss b/src/lib/progress-bar/_progress-bar-theme.scss
index 6251c8aeb569..e759746a1793 100644
--- a/src/lib/progress-bar/_progress-bar-theme.scss
+++ b/src/lib/progress-bar/_progress-bar-theme.scss
@@ -48,23 +48,31 @@
// TODO(josephperrott): Find better way to inline svgs.
// In buffer mode a repeated SVG object is used as a background.
-// Each of the following defines the SVG object for each of the class defined colors.
+// Each of the following defines the SVG object for each of the class defined colors.
//
-// The string is a URL encoded version of:
+// The string is a URL encoded version of:
//
-//
+//
@function _mat-progress-bar-buffer($palette, $hue) {
- $result: '' +
- 'data:image/svg+xml;charset=UTF-8,%3Csvg%20version%3D%271.1%27%20xmlns%3D%27http%3A%2F%2F' +
- 'www.w3.org%2F2000%2Fsvg%27%20xmlns%3Axlink%3D%27http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%2' +
- '7%20x%3D%270px%27%20y%3D%270px%27%20enable-background%3D%27new%200%200%205%202%27%20xml%' +
- '3Aspace%3D%27preserve%27%20viewBox%3D%270%200%205%202%27%20preserveAspectRatio%3D%27none' +
- '%20slice%27%3E%3Ccircle%20cx%3D%271%27%20cy%3D%271%27%20r%3D%271%27%20fill%3D%27' +
- mat-color($palette, $hue) + '%27%2F%3E%3C%2Fsvg%3E';
+ $color: mat-color($palette, $hue) + '';
+
+ // We also need to escape the hash in hex colors,
+ // otherwise IE will throw an XML error.
+ @if str-index($color, '#') == 1 {
+ $color: '%23' + str-slice($color, 2);
+ }
+
+ $result: '' +
+ 'data:image/svg+xml;charset=UTF-8,%3Csvg%20version%3D%271.1%27%20xmlns%3D%27http%3A%2F%2F' +
+ 'www.w3.org%2F2000%2Fsvg%27%20xmlns%3Axlink%3D%27http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%2' +
+ '7%20x%3D%270px%27%20y%3D%270px%27%20enable-background%3D%27new%200%200%205%202%27%20xml%' +
+ '3Aspace%3D%27preserve%27%20viewBox%3D%270%200%205%202%27%20preserveAspectRatio%3D%27none' +
+ '%20slice%27%3E%3Ccircle%20cx%3D%271%27%20cy%3D%271%27%20r%3D%271%27%20fill%3D%27' +
+ $color + '%27%2F%3E%3C%2Fsvg%3E';
@return url($result);
}