diff --git a/src/generators/dom/visitors/attributes/addElementAttributes.js b/src/generators/dom/visitors/attributes/addElementAttributes.js
index 96bcd74998ec..490d33034898 100644
--- a/src/generators/dom/visitors/attributes/addElementAttributes.js
+++ b/src/generators/dom/visitors/attributes/addElementAttributes.js
@@ -6,7 +6,7 @@ import flattenReference from '../../../../utils/flattenReference.js';
export default function addElementAttributes ( generator, node, local ) {
node.attributes.forEach( attribute => {
if ( attribute.type === 'Attribute' ) {
- let metadata = generator.current.namespace ? null : attributeLookup[ attribute.name ];
+ let metadata = local.namespace ? null : attributeLookup[ attribute.name ];
if ( metadata && metadata.appliesTo && !~metadata.appliesTo.indexOf( node.name ) ) metadata = null;
let dynamic = false;
diff --git a/test/generator/svg-class/_config.js b/test/generator/svg-class/_config.js
new file mode 100644
index 000000000000..d801f4d60251
--- /dev/null
+++ b/test/generator/svg-class/_config.js
@@ -0,0 +1,14 @@
+// this looks like another JSDOM quirk — svg.className = 'foo' behaves
+// differently from browsers. So this test succeeds even when it should fail
+export default {
+ html: ``,
+
+ test ( assert, component, target ) {
+ const svg = target.querySelector( 'svg' );
+
+ assert.equal( svg.namespaceURI, 'http://www.w3.org/2000/svg' );
+ assert.equal( svg.getAttribute( 'class' ), 'foo' );
+
+ component.teardown();
+ }
+};
diff --git a/test/generator/svg-class/main.html b/test/generator/svg-class/main.html
new file mode 100644
index 000000000000..10c023ee88de
--- /dev/null
+++ b/test/generator/svg-class/main.html
@@ -0,0 +1 @@
+