diff --git a/tests/baselines/reference/moduleSymbolMerging.js b/tests/baselines/reference/moduleSymbolMerging.js
new file mode 100644
index 00000000000..4b35f939873
--- /dev/null
+++ b/tests/baselines/reference/moduleSymbolMerging.js
@@ -0,0 +1,42 @@
+//// [tests/cases/compiler/moduleSymbolMerging.ts] ////
+
+//// [A.ts]
+
+module A { export interface I {} }
+
+//// [B.ts]
+///
+module A { ; }
+module B {
+ export function f(): A.I { return null; }
+}
+
+
+
+//// [A.js]
+//// [B.js]
+var A;
+(function (A) {
+ ;
+})(A || (A = {}));
+var B;
+(function (B) {
+ function f() {
+ return null;
+ }
+ B.f = f;
+})(B || (B = {}));
+
+
+//// [A.d.ts]
+declare module A {
+ interface I {
+ }
+}
+//// [B.d.ts]
+///
+declare module A {
+}
+declare module B {
+ function f(): A.I;
+}
diff --git a/tests/cases/compiler/moduleSymbolMerging.ts b/tests/cases/compiler/moduleSymbolMerging.ts
new file mode 100644
index 00000000000..03df2c5e596
--- /dev/null
+++ b/tests/cases/compiler/moduleSymbolMerging.ts
@@ -0,0 +1,12 @@
+// @declaration: true
+
+// @Filename: A.ts
+module A { export interface I {} }
+
+// @Filename: B.ts
+///
+module A { ; }
+module B {
+ export function f(): A.I { return null; }
+}
+