diff --git a/templates/default/publish.js b/templates/default/publish.js
index cca01ba8..7f1a6d2b 100644
--- a/templates/default/publish.js
+++ b/templates/default/publish.js
@@ -81,7 +81,9 @@ function addSignatureTypes(f) {
function addAttribs(f) {
var attribs = helper.getAttribs(f);
- f.attribs = ''+htmlsafe(attribs.length? '<'+attribs.join(', ')+'> ' : '')+'';
+ f.attribs = '' + htmlsafe(attribs.length ?
+ // we want the template output to say 'abstract', not 'virtual'
+ '<' + attribs.join(', ').replace('virtual', 'abstract') + '> ' : '') + '';
}
function shortenPaths(files, commonPrefix) {