diff --git a/Gruntfile.js b/Gruntfile.js
index 59205a25a47524cf86d1ea1506441a993f1f4fa0..b4438e89d31d6a8699b44411b07c4405a153a809 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -453,7 +453,7 @@ module.exports = function (grunt) {
   // This can be overzealous, so its changes should always be manually reviewed!
   grunt.registerTask('change-version-number', 'sed');
 
-  grunt.registerTask('build-glyphicons-data', generateGlyphiconsData);
+  grunt.registerTask('build-glyphicons-data', function () { generateGlyphiconsData.call(this, grunt); });
 
   // task for building customizer
   grunt.registerTask('build-customizer', ['build-customizer-html', 'build-raw-files']);
diff --git a/grunt/bs-glyphicons-data-generator.js b/grunt/bs-glyphicons-data-generator.js
index b711943678368b315bdc59dac83b710050ed8826..82dc727b6fec6cd3ad6fd3f2ce3dee7fea191514 100644
--- a/grunt/bs-glyphicons-data-generator.js
+++ b/grunt/bs-glyphicons-data-generator.js
@@ -7,7 +7,7 @@
 'use strict';
 var fs = require('fs');
 
-module.exports = function generateGlyphiconsData() {
+module.exports = function generateGlyphiconsData(grunt) {
   // Pass encoding, utf8, so `readFileSync` will return a string instead of a
   // buffer
   var glyphiconsFile = fs.readFileSync('less/glyphicons.less', 'utf8');
@@ -17,6 +17,7 @@ module.exports = function generateGlyphiconsData() {
   var iconClassName = /^\.(glyphicon-[^\s]+)/;
   var glyphiconsData = '# This file is generated via Grunt task. **Do not edit directly.**\n' +
                        '# See the \'build-glyphicons-data\' task in Gruntfile.js.\n\n';
+  var glyphiconsYml = 'docs/_data/glyphicons.yml';
   for (var i = 0, len = glyphiconsLines.length; i < len; i++) {
     var match = glyphiconsLines[i].match(iconClassName);
 
@@ -30,5 +31,11 @@ module.exports = function generateGlyphiconsData() {
     fs.mkdirSync('docs/_data');
   }
 
-  fs.writeFileSync('docs/_data/glyphicons.yml', glyphiconsData);
+  try {
+    fs.writeFileSync(glyphiconsYml, glyphiconsData);
+  }
+  catch (err) {
+    grunt.fail.warn(err);
+  }
+  grunt.log.writeln('File ' + glyphiconsYml.cyan + ' created.');
 };