diff --git a/pkg/analyzer/lib/src/generated/error_verifier.dart b/pkg/analyzer/lib/src/generated/error_verifier.dart
index ed7fe2bc9fd25..9f5eef91e6c08 100644
--- a/pkg/analyzer/lib/src/generated/error_verifier.dart
+++ b/pkg/analyzer/lib/src/generated/error_verifier.dart
@@ -4166,7 +4166,7 @@ class ErrorVerifier extends RecursiveAstVisitor<Object> {
       }
 
       FunctionType mixinMemberType =
-          _inheritanceManager.getMember(mixinType, nameObject);
+          _inheritanceManager.getMember(mixinType, nameObject, forSuper: true);
 
       if (mixinMemberType != null &&
           !_typeSystem.isOverrideSubtypeOf(superMemberType, mixinMemberType)) {
diff --git a/pkg/analyzer/test/src/dart/resolution/mixin_test.dart b/pkg/analyzer/test/src/dart/resolution/mixin_test.dart
index df7494a476bb6..ca8630a8f66cb 100644
--- a/pkg/analyzer/test/src/dart/resolution/mixin_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/mixin_test.dart
@@ -902,6 +902,24 @@ abstract class X extends B with M {}
     ]);
   }
 
+  test_error_mixinApplicationConcreteSuperInvokedMemberType_OK_method_overriddenInMixin() async {
+    addTestFile(r'''
+class A<T> {
+  void remove(T x) {}
+}
+
+mixin M<U> on A<U> {
+  void remove(Object x) {
+    super.remove(x as U);
+  }
+}
+
+class X<T> = A<T> with M<T>;
+''');
+    await resolveTestFile();
+    assertNoTestErrors();
+  }
+
   test_error_mixinApplicationNoConcreteSuperInvokedMember_getter() async {
     addTestFile(r'''
 abstract class A {
diff --git a/tests/language_2/issue34896_test.dart b/tests/language_2/issue34896_test.dart
new file mode 100644
index 0000000000000..d7a0ea3f18b7e
--- /dev/null
+++ b/tests/language_2/issue34896_test.dart
@@ -0,0 +1,20 @@
+// Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Regression test: verify super-signatures of super-invoked methods of a
+// mixin against the superclass, not signatures in the mixin.
+
+class A<T> {
+  void remove(T x) {}
+}
+
+mixin M<U> on A<U> {
+  void remove(Object x) {
+    super.remove(x as U);
+  }
+}
+
+class X<T> = A<T> with M<T>;
+
+main() {}