diff --git a/packages/babel-helper-builder-react-jsx/src/index.js b/packages/babel-helper-builder-react-jsx/src/index.js
index 6307db4608..e0b4f5498e 100644
--- a/packages/babel-helper-builder-react-jsx/src/index.js
+++ b/packages/babel-helper-builder-react-jsx/src/index.js
@@ -92,7 +92,11 @@ You can turn on the 'throwIfNamespace' flag to bypass this warning.`,
if (t.isValidIdentifier(node.name.name)) {
node.name.type = "Identifier";
} else {
- node.name = t.stringLiteral(node.name.name);
+ node.name = t.stringLiteral(
+ t.isJSXNamespacedName(node.name)
+ ? node.name.namespace.name + ":" + node.name.name.name
+ : node.name.name,
+ );
}
return t.inherits(t.objectProperty(node.name, value), node);
diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-support-xml-namespaces-if-flag/actual.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-support-xml-namespaces-if-flag/actual.js
index 4888b2b705..48d051a951 100644
--- a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-support-xml-namespaces-if-flag/actual.js
+++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-support-xml-namespaces-if-flag/actual.js
@@ -1 +1 @@
-;
+;
diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-support-xml-namespaces-if-flag/expected.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-support-xml-namespaces-if-flag/expected.js
index 84038ebb97..24a57b8f23 100644
--- a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-support-xml-namespaces-if-flag/expected.js
+++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-support-xml-namespaces-if-flag/expected.js
@@ -1 +1,3 @@
-h("f:image", null);
+h("f:image", {
+ "n:attr": true
+});