diff --git a/tests/cases/fourslash/referencesForInheritedProperties3.ts b/tests/cases/fourslash/referencesForInheritedProperties3.ts
new file mode 100644
index 00000000000..134f75da84b
--- /dev/null
+++ b/tests/cases/fourslash/referencesForInheritedProperties3.ts
@@ -0,0 +1,15 @@
+///
+
+//// interface interface1 extends interface1 {
+//// /*1*/doStuff(): void;
+//// /*2*/propName: string;
+//// }
+////
+//// var v: interface1;
+//// v./*3*/propName;
+//// v./*4*/doStuff();
+
+test.markers().forEach(m => {
+ goTo.position(m.position, m.fileName);
+ verify.referencesCountIs(2);
+});
\ No newline at end of file
diff --git a/tests/cases/fourslash/referencesForInheritedProperties4.ts b/tests/cases/fourslash/referencesForInheritedProperties4.ts
new file mode 100644
index 00000000000..10dcc9c77a2
--- /dev/null
+++ b/tests/cases/fourslash/referencesForInheritedProperties4.ts
@@ -0,0 +1,15 @@
+///
+
+//// class class1 extends class1 {
+//// /*1*/doStuff() { }
+//// /*2*/propName: string;
+//// }
+////
+//// var c: class1;
+//// c./*3*/doStuff();
+//// c./*4*/propName;
+
+test.markers().forEach(m => {
+ goTo.position(m.position, m.fileName);
+ verify.referencesCountIs(2);
+});
\ No newline at end of file
diff --git a/tests/cases/fourslash/referencesForInheritedProperties5.ts b/tests/cases/fourslash/referencesForInheritedProperties5.ts
new file mode 100644
index 00000000000..722c5c96f0a
--- /dev/null
+++ b/tests/cases/fourslash/referencesForInheritedProperties5.ts
@@ -0,0 +1,19 @@
+///
+
+//// interface interface1 extends interface1 {
+//// /*1*/doStuff(): void;
+//// /*2*/propName: string;
+//// }
+//// interface interface2 extends interface1 {
+//// /*3*/doStuff(): void;
+//// /*4*/propName: string;
+//// }
+////
+//// var v: interface1;
+//// v./*5*/propName;
+//// v./*6*/doStuff();
+
+test.markers().forEach(m => {
+ goTo.position(m.position, m.fileName);
+ verify.referencesCountIs(3);
+});
\ No newline at end of file
diff --git a/tests/cases/fourslash/referencesForInheritedProperties6.ts b/tests/cases/fourslash/referencesForInheritedProperties6.ts
new file mode 100644
index 00000000000..de6a2f2eba1
--- /dev/null
+++ b/tests/cases/fourslash/referencesForInheritedProperties6.ts
@@ -0,0 +1,32 @@
+///
+
+//// class class1 extends class1 {
+//// /*1*/doStuff() { }
+//// /*2*/propName: string;
+//// }
+//// class class2 extends class1 {
+//// /*3*/doStuff() { }
+//// /*4*/propName: string;
+//// }
+////
+//// var v: class2;
+//// v./*5*/propName;
+//// v./*6*/doStuff();
+
+goTo.marker("1");
+verify.referencesCountIs(1);
+
+goTo.marker("2");
+verify.referencesCountIs(3);
+
+goTo.marker("3");
+verify.referencesCountIs(2);
+
+goTo.marker("4");
+verify.referencesCountIs(3);
+
+goTo.marker("5");
+verify.referencesCountIs(3);
+
+goTo.marker("6");
+verify.referencesCountIs(2);
\ No newline at end of file
diff --git a/tests/cases/fourslash/referencesForInheritedProperties7.ts b/tests/cases/fourslash/referencesForInheritedProperties7.ts
new file mode 100644
index 00000000000..000d4922222
--- /dev/null
+++ b/tests/cases/fourslash/referencesForInheritedProperties7.ts
@@ -0,0 +1,42 @@
+///
+
+//// class class1 extends class1 {
+//// /*1*/doStuff() { }
+//// /*2*/propName: string;
+//// }
+//// interface interface1 extends interface1 {
+//// /*3*/doStuff(): void;
+//// /*4*/propName: string;
+//// }
+//// class class2 extends class1 implements interface1 {
+//// /*5*/doStuff() { }
+//// /*6*/propName: string;
+//// }
+////
+//// var v: class2;
+//// v./*7*/propName;
+//// v./*8*/doStuff();
+
+goTo.marker("1");
+verify.referencesCountIs(1);
+
+goTo.marker("2");
+verify.referencesCountIs(3);
+
+goTo.marker("3");
+verify.referencesCountIs(3);
+
+goTo.marker("4");
+verify.referencesCountIs(3);
+
+goTo.marker("5");
+verify.referencesCountIs(3);
+
+goTo.marker("6");
+verify.referencesCountIs(4);
+
+goTo.marker("7");
+verify.referencesCountIs(4);
+
+goTo.marker("8");
+verify.referencesCountIs(3);
\ No newline at end of file