diff --git a/src/htmx.js b/src/htmx.js
index cabe02e1..5e56947b 100644
--- a/src/htmx.js
+++ b/src/htmx.js
@@ -812,7 +812,8 @@ return (function () {
forEach(fragment.querySelectorAll("[id]"), function (newNode) {
if (newNode.id && newNode.id.length > 0) {
var normalizedId = newNode.id.replace("'", "\\'");
- var oldNode = parentNode.querySelector(newNode.tagName + "[id='" + normalizedId + "']");
+ var normalizedTag = newNode.tagName.replace(':', '\\:');
+ var oldNode = parentNode.querySelector(normalizedTag + "[id='" + normalizedId + "']");
if (oldNode && oldNode !== parentNode) {
var newAttributes = newNode.cloneNode();
cloneAttributes(newNode, oldNode);
diff --git a/test/core/ajax.js b/test/core/ajax.js
index 58ae09bf..b6ea1123 100644
--- a/test/core/ajax.js
+++ b/test/core/ajax.js
@@ -979,4 +979,14 @@ describe("Core htmx AJAX Tests", function(){
}
});
+ it('should load tags with colon in their names', function() {
+ this.server.respondWith('GET', '/test', 'Foobar');
+
+ var btn = make('');
+ btn.click();
+ this.server.respond();
+
+ btn.innerHTML.should.equal('Foobar');
+ });
+
})