Index: Gruntfile.js
===================================================================
--- Gruntfile.js	(revision 25692)
+++ Gruntfile.js	(working copy)
@@ -26,13 +26,17 @@
 			}
 		},
 		copy: {
-			all: {
+			direct: {
 				files: [
 					{
 						dot: true,
 						expand: true,
 						cwd: SOURCE_DIR,
-						src: ['**','!**/.{svn,git}/**'], // Ignore version control directories.
+						src: [
+							'**',
+							'!**/.{svn,git}/**', // Ignore version control directories.
+							'!wp-includes/version.php' // Exclude version.php
+						],
 						dest: BUILD_DIR
 					},
 					{
@@ -41,6 +45,27 @@
 					}
 				]
 			},
+			process: {
+				options: {
+					processContent: function( src, filepath ) {
+						if ( filepath.indexOf( 'version.php' ) > -1 ) {
+							src = src.replace( /^(\$wp_version.+?)-src/m, '$1' );
+							
+							if ( src.indexOf( "-src';" ) > -1 ) {
+								grunt.fail.fatal('Failed to remove -src from $wp_version');
+							}
+						}
+
+						return src;
+					}
+				},
+				files: [
+					{
+						src: SOURCE_DIR + 'wp-includes/version.php',
+						dest: BUILD_DIR + 'wp-includes/version.php'
+					}
+				]
+			},
 			dynamic: {
 				dot: true,
 				expand: true,
@@ -158,6 +183,10 @@
 	});
 
 	// Register tasks.
+	// Copy
+	grunt.registerTask('copy:all', ['copy:direct', 'copy:process']);
+	
+	// Build
 	grunt.registerTask('build', ['clean:all', 'copy:all', 'cssmin:core', 'uglify:core',
 		'uglify:tinymce', 'concat:tinymce', 'compress:tinymce', 'clean:tinymce']);
 
