diff --git a/pkg/nnbd_migration/lib/src/front_end/info_builder.dart b/pkg/nnbd_migration/lib/src/front_end/info_builder.dart
index d8b4f69..a69c96e 100644
--- a/pkg/nnbd_migration/lib/src/front_end/info_builder.dart
+++ b/pkg/nnbd_migration/lib/src/front_end/info_builder.dart
@@ -336,11 +336,12 @@
     var sourceOffsets = changes.keys.toList();
     sourceOffsets.sort();
     var offset = 0;
-    var lastSourceOffset = 0;
-    for (var sourceOffset in sourceOffsets) {
-      offset += sourceOffset - lastSourceOffset;
-      lastSourceOffset = sourceOffset;
-      var changesForSourceOffset = changes[sourceOffset];
+    var sourceOffset = 0;
+    for (var nextSourceOffset in sourceOffsets) {
+      var changesForSourceOffset = changes[nextSourceOffset];
+      var unchangedTextLength = nextSourceOffset - sourceOffset;
+      offset += unchangedTextLength;
+      sourceOffset += unchangedTextLength;
       for (var edit in changesForSourceOffset) {
         var length = edit.length;
         var replacement = edit.replacement;
@@ -400,7 +401,8 @@
                 'informative: $edit');
           }
         }
-        offset += replacement.length;
+        sourceOffset += length;
+        offset += length + replacement.length;
       }
     }
 
diff --git a/pkg/nnbd_migration/test/front_end/info_builder_test.dart b/pkg/nnbd_migration/test/front_end/info_builder_test.dart
index 67a796f..cee694a 100644
--- a/pkg/nnbd_migration/test/front_end/info_builder_test.dart
+++ b/pkg/nnbd_migration/test/front_end/info_builder_test.dart
@@ -886,6 +886,26 @@
         kind: NullabilityFixKind.checkExpression);
   }
 
+  Future<void> test_method_name_change() async {
+    addPackageFile('collection', 'collection.dart', '');
+    var content = '''
+import 'package:collection/collection.dart';
+
+int f(List<int> values, int/*?*/ x)
+    => values.firstWhere((i) => (i + x).isEven,
+        orElse: () => null);
+''';
+    var migratedContent = '''
+import 'package:collection/collection.dart';
+
+int? f(List<int >  values, int/*?*/ x)
+    => values.firstWherefirstWhereOrNull((i) => (i + x!).isEven,
+        orElse: () => null);
+''';
+    await buildInfoForSingleTestFile(content,
+        migratedContent: migratedContent, removeViaComments: false);
+  }
+
   void test_nullAwareAssignment_remove() async {
     var unit = await buildInfoForSingleTestFile('''
 int f(int/*!*/ x, int y) => x ??= y;
diff --git a/pkg/nnbd_migration/test/front_end/nnbd_migration_test_base.dart b/pkg/nnbd_migration/test/front_end/nnbd_migration_test_base.dart
index 3b31e90..70cf296 100644
--- a/pkg/nnbd_migration/test/front_end/nnbd_migration_test_base.dart
+++ b/pkg/nnbd_migration/test/front_end/nnbd_migration_test_base.dart
@@ -207,7 +207,8 @@
         permissive: false,
         instrumentation: instrumentationListener,
         removeViaComments: removeViaComments,
-        warnOnWeakCode: warnOnWeakCode);
+        warnOnWeakCode: warnOnWeakCode,
+        transformWhereOrNull: true);
     Future<void> _forEachPath(
         void Function(ResolvedUnitResult) callback) async {
       for (var testPath in testPaths) {
diff --git a/tools/VERSION b/tools/VERSION
index 7845415..c0f5c5a 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 11
 PATCH 0
-PRERELEASE 256
+PRERELEASE 257
 PRERELEASE_PATCH 0
\ No newline at end of file
