diff --git a/core/js/contactsmenu/jquery_entry.handlebars b/core/js/contactsmenu/jquery_entry.handlebars
new file mode 100644
index 0000000000000000000000000000000000000000..cbd97056e5ce8ea16b973f7600550d62a82f0715
--- /dev/null
+++ b/core/js/contactsmenu/jquery_entry.handlebars
@@ -0,0 +1,6 @@
+<li>
+	<a href="{{hyperlink}}">
+		{{#if icon}}<img src="{{icon}}">{{/if}}
+		<span>{{title}}</span>
+	</a>
+</li>
diff --git a/core/js/contactsmenu_templates.js b/core/js/contactsmenu_templates.js
index 973d93a74f0e8210d7eab4c7874d01400702fe9f..af96a133ece643eccf3deee77ea526358490af77 100644
--- a/core/js/contactsmenu_templates.js
+++ b/core/js/contactsmenu_templates.js
@@ -74,6 +74,23 @@ templates['error'] = template({"compiler":[7,">= 4.0.0"],"main":function(contain
     + container.escapeExpression(((helper = (helper = helpers.couldNotLoadText || (depth0 != null ? depth0.couldNotLoadText : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"couldNotLoadText","hash":{},"data":data}) : helper)))
     + "</h2>\n</div>\n";
 },"useData":true});
+templates['jquery_entry'] = template({"1":function(container,depth0,helpers,partials,data) {
+    var helper;
+
+  return "<img src=\""
+    + container.escapeExpression(((helper = (helper = helpers.icon || (depth0 != null ? depth0.icon : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"icon","hash":{},"data":data}) : helper)))
+    + "\">";
+},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) {
+    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3="function", alias4=container.escapeExpression;
+
+  return "<li>\n	<a href=\""
+    + alias4(((helper = (helper = helpers.hyperlink || (depth0 != null ? depth0.hyperlink : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"hyperlink","hash":{},"data":data}) : helper)))
+    + "\">\n		"
+    + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.icon : depth0),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "")
+    + "\n		<span>"
+    + alias4(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"title","hash":{},"data":data}) : helper)))
+    + "</span>\n	</a>\n</li>\n";
+},"useData":true});
 templates['list'] = template({"1":function(container,depth0,helpers,partials,data) {
     var helper;
 
diff --git a/core/js/jquery.contactsmenu.js b/core/js/jquery.contactsmenu.js
index e3f24dfff524166d6025d672593ccf200eb2e912..4b443d5e3b3322baf9dab4d506b6ff08963475b2 100644
--- a/core/js/jquery.contactsmenu.js
+++ b/core/js/jquery.contactsmenu.js
@@ -6,13 +6,6 @@
  */
 
 (function ($) {
-	var ENTRY = ''
-		+ '<li>'
-		+ '    <a href="{{hyperlink}}">'
-		+ '        {{#if icon}}<img src="{{icon}}">{{/if}}'
-		+ '        <span>{{title}}</span>'
-		+ '    </a>'
-		+ '</li>';
 
 	var LIST = ''
 		+ '<div class="menu popovermenu menu-left hidden contactsmenu-popover">'
@@ -71,7 +64,7 @@
 				}
 
 				actions.forEach(function(action) {
-					var template = Handlebars.compile(ENTRY);
+					var template = OC.ContactsMenu.Templates['jquery_entry'];
 					$list.find('ul').append(template(action));
 				});
 
@@ -88,7 +81,7 @@
 					title = t('core', 'Error fetching contact actions');
 				}
 
-				var template = Handlebars.compile(ENTRY);
+				var template = OC.ContactsMenu.Templates['jquery_entry'];
 				$list.find('ul').append(template({
 					hyperlink: '#',
 					title: title
diff --git a/core/js/tests/specs/jquery.contactsmenuSpec.js b/core/js/tests/specs/jquery.contactsmenuSpec.js
index 80d08150c3fa37512346b08dedbd0e007b671720..9cad302a998c011731165d2864542899e0a878b0 100644
--- a/core/js/tests/specs/jquery.contactsmenuSpec.js
+++ b/core/js/tests/specs/jquery.contactsmenuSpec.js
@@ -45,7 +45,7 @@ describe('jquery.contactsMenu tests', function() {
 		it('append list if shareType supported', function() {
 			$selector1.contactsMenu('user', 0, $appendTo);
 			expect($appendTo.children().length).toEqual(1);
-			expect($appendTo.html()).toEqual('<div class="menu popovermenu menu-left hidden contactsmenu-popover">    <ul>        <li>            <a>                <span class="icon-loading-small"></span>            </a>        </li>    </ul></div>');
+			expect($appendTo.html().replace(/[\r\n\t]?(\ \ +)?/g, '')).toEqual('<div class="menu popovermenu menu-left hidden contactsmenu-popover"><ul><li><a><span class="icon-loading-small"></span></a></li></ul></div>');
 		});
 	});
 
@@ -120,7 +120,7 @@ describe('jquery.contactsMenu tests', function() {
 			expect(fakeServer.requests[0].method).toEqual('POST');
 			expect(fakeServer.requests[0].url).toEqual('http://localhost/index.php/contactsmenu/findOne');
 
-			expect($appendTo.html()).toEqual('<div class="menu popovermenu menu-left contactsmenu-popover loaded" style="display: block;">    <ul>        <li class="hidden">            <a>                <span class="icon-loading-small"></span>            </a>        </li>    <li>    <a href="mailto:bar%40baz.wtf">        <img src="foo.svg">        <span>bar@baz.wtf</span>    </a></li></ul></div>');
+			expect($appendTo.html().replace(/[\r\n\t]?(\ \ +)?/g, '')).toEqual('<div class="menu popovermenu menu-left contactsmenu-popover loaded" style="display: block;"><ul><li class="hidden"><a><span class="icon-loading-small"></span></a></li><li><a href="mailto:bar%40baz.wtf"><img src="foo.svg"><span>bar@baz.wtf</span></a></li></ul></div>');
 		});
 
 		it('load topaction and more actions', function() {
@@ -147,7 +147,7 @@ describe('jquery.contactsMenu tests', function() {
 			expect(fakeServer.requests[0].method).toEqual('POST');
 			expect(fakeServer.requests[0].url).toEqual('http://localhost/index.php/contactsmenu/findOne');
 
-			expect($appendTo.html()).toEqual('<div class="menu popovermenu menu-left contactsmenu-popover loaded" style="display: block;">    <ul>        <li class="hidden">            <a>                <span class="icon-loading-small"></span>            </a>        </li>    <li>    <a href="mailto:bar%40baz.wtf">        <img src="foo.svg">        <span>bar@baz.wtf</span>    </a></li><li>    <a href="http://localhost/index.php/apps/contacts">        <img src="details.svg">        <span>Details</span>    </a></li></ul></div>');
+			expect($appendTo.html().replace(/[\r\n\t]?(\ \ +)?/g, '')).toEqual('<div class="menu popovermenu menu-left contactsmenu-popover loaded" style="display: block;"><ul><li class="hidden"><a><span class="icon-loading-small"></span></a></li><li><a href="mailto:bar%40baz.wtf"><img src="foo.svg"><span>bar@baz.wtf</span></a></li><li><a href="http://localhost/index.php/apps/contacts"><img src="details.svg"><span>Details</span></a></li></ul></div>');
 		});
 
 		it('load no actions', function() {
@@ -167,7 +167,7 @@ describe('jquery.contactsMenu tests', function() {
 			expect(fakeServer.requests[0].method).toEqual('POST');
 			expect(fakeServer.requests[0].url).toEqual('http://localhost/index.php/contactsmenu/findOne');
 
-			expect($appendTo.html()).toEqual('<div class="menu popovermenu menu-left contactsmenu-popover loaded" style="display: block;">    <ul>        <li class="hidden">            <a>                <span class="icon-loading-small"></span>            </a>        </li>    <li>    <a href="#">                <span>No action available</span>    </a></li></ul></div>');
+			expect($appendTo.html().replace(/[\r\n\t]?(\ \ +)?/g, '')).toEqual('<div class="menu popovermenu menu-left contactsmenu-popover loaded" style="display: block;"><ul><li class="hidden"><a><span class="icon-loading-small"></span></a></li><li><a href="#"><span>No action available</span></a></li></ul></div>');
 		});
 
 		it('should throw an error', function() {
@@ -182,7 +182,7 @@ describe('jquery.contactsMenu tests', function() {
 			expect(fakeServer.requests[0].method).toEqual('POST');
 			expect(fakeServer.requests[0].url).toEqual('http://localhost/index.php/contactsmenu/findOne');
 
-			expect($appendTo.html()).toEqual('<div class="menu popovermenu menu-left contactsmenu-popover loaded" style="display: block;">    <ul>        <li class="hidden">            <a>                <span class="icon-loading-small"></span>            </a>        </li>    <li>    <a href="#">                <span>Error fetching contact actions</span>    </a></li></ul></div>');
+			expect($appendTo.html().replace(/[\r\n\t]?(\ \ +)?/g, '')).toEqual('<div class="menu popovermenu menu-left contactsmenu-popover loaded" style="display: block;"><ul><li class="hidden"><a><span class="icon-loading-small"></span></a></li><li><a href="#"><span>Error fetching contact actions</span></a></li></ul></div>');
 		});
 
 		it('should handle 404', function() {
@@ -197,7 +197,7 @@ describe('jquery.contactsMenu tests', function() {
 			expect(fakeServer.requests[0].method).toEqual('POST');
 			expect(fakeServer.requests[0].url).toEqual('http://localhost/index.php/contactsmenu/findOne');
 
-			expect($appendTo.html()).toEqual('<div class="menu popovermenu menu-left contactsmenu-popover loaded" style="display: block;">    <ul>        <li class="hidden">            <a>                <span class="icon-loading-small"></span>            </a>        </li>    <li>    <a href="#">                <span>No action available</span>    </a></li></ul></div>');
+			expect($appendTo.html().replace(/[\r\n\t]?(\ \ +)?/g, '')).toEqual('<div class="menu popovermenu menu-left contactsmenu-popover loaded" style="display: block;"><ul><li class="hidden"><a><span class="icon-loading-small"></span></a></li><li><a href="#"><span>No action available</span></a></li></ul></div>');
 		});
 	});