diff --git a/third_party/go/patches/goimports-group-merging.patch b/third_party/go/patches/goimports-group-merging.patch
index ed87faf..87a20b3 100644
--- a/third_party/go/patches/goimports-group-merging.patch
+++ b/third_party/go/patches/goimports-group-merging.patch
@@ -1,5 +1,7 @@
 Upstream CL: https://go-review.googlesource.com/c/tools/+/321409
 
+Modified to work against upstream Go.
+
 From cdd84f3789f3ebbd1c55dc220bbbe4a77ab4024a Mon Sep 17 00:00:00 2001
 From: Moekr <1143757638wlw@gmail.com>
 Date: Thu, 20 May 2021 15:41:17 +0800
@@ -8,19 +10,11 @@
 Merge two import groups if there is no comments between them.
 This can make import blocks look more pretty.
 
-Fixes golang/go#20818 golang/go#28200
-
-Change-Id: Ic02ca83bd778e6d5b5b3c15292cde4fba6c842a9
 ---
- internal/imports/fix_test.go    | 65 +++++++++++++++++++++++++++++----
- internal/imports/sortimports.go | 23 ++++++++++--
- 2 files changed, 77 insertions(+), 11 deletions(-)
-
-diff --git a/internal/imports/fix_test.go b/internal/imports/fix_test.go
-index 005bf96e..5ff84cdd 100644
---- a/internal/imports/fix_test.go
-+++ b/internal/imports/fix_test.go
-@@ -553,7 +553,6 @@ c = fmt.Printf
+diff -ur org_golang_x_tools.orig/internal/imports/fix_test.go org_golang_x_tools/internal/imports/fix_test.go
+--- org_golang_x_tools.orig/internal/imports/fix_test.go	2023-04-03 15:16:24.808998544 +0200
++++ org_golang_x_tools/internal/imports/fix_test.go	2023-04-03 15:16:56.069290812 +0200
+@@ -552,7 +552,6 @@
  
  import (
  	"fmt"
@@ -28,7 +22,7 @@
  	"gu"
  
  	"manypackages.com/packagea"
-@@ -644,15 +643,11 @@ var _, _, _, _, _ = fmt.Errorf, io.Copy, strings.Contains, renamed_packagea.A, B
+@@ -643,15 +642,11 @@
  
  import (
  	"fmt"
@@ -46,12 +40,10 @@
  	_ "manypackages.com/packagec"
  )
  
-@@ -1151,6 +1146,62 @@ var _, _ = rand.Read, rand.NewZipf
- import "math/rand"
- 
+@@ -1183,6 +1178,62 @@
  var _, _ = rand.Read, rand.NewZipf
-+`,
-+	},
+ `,
+ 	},
 +	{
 +		name: "comment_between_imports_simple",
 +		in: `package main
@@ -106,47 +98,48 @@
 +
 +	_ "github.com/bar/foo2"
 +)
- `,
- 	},
++`,
++	},
  }
-diff --git a/internal/imports/sortimports.go b/internal/imports/sortimports.go
-index be8ffa25..25c5ca3f 100644
---- a/internal/imports/sortimports.go
-+++ b/internal/imports/sortimports.go
-@@ -34,14 +34,29 @@ func sortImports(localPrefix string, fset *token.FileSet, f *ast.File) {
+ 
+ func TestSimpleCases(t *testing.T) {
+Only in org_golang_x_tools/internal/imports: fix_test.go.orig
+diff -ur org_golang_x_tools.orig/internal/imports/sortimports.go org_golang_x_tools/internal/imports/sortimports.go
+--- org_golang_x_tools.orig/internal/imports/sortimports.go	2023-04-03 15:16:24.808998544 +0200
++++ org_golang_x_tools/internal/imports/sortimports.go	2023-04-03 15:20:31.361303687 +0200
+@@ -38,15 +38,31 @@
  			continue
  		}
  
 +		// Find comments.
 +		commentLines := make([]int, len(f.Comments))
 +		for j, comment := range f.Comments {
-+			commentLines[j] = fset.Position(comment.Pos()).Line
++			commentLines[j] = tokFile.Line(comment.Pos())
 +		}
 +
  		// Identify and sort runs of specs on successive lines.
  		i := 0
  		specs := d.Specs[:0]
  		for j, s := range d.Specs {
--			if j > i && fset.Position(s.Pos()).Line > 1+fset.Position(d.Specs[j-1].End()).Line {
+-			if j > i && tokFile.Line(s.Pos()) > 1+tokFile.Line(d.Specs[j-1].End()) {
 -				// j begins a new run.  End this one.
--				specs = append(specs, sortSpecs(localPrefix, fset, f, d.Specs[i:j])...)
+-				specs = append(specs, sortSpecs(localPrefix, tokFile, f, d.Specs[i:j])...)
 -				i = j
 +			if j > i {
-+				curLine, prevLine := fset.Position(s.Pos()).Line, fset.Position(d.Specs[j-1].End()).Line
++				curLine, prevLine := tokFile.Line(s.Pos()), tokFile.Line(d.Specs[j-1].End())
 +				if curLine > 1+prevLine {
 +					// j begins a new run.
 +					for _, commentLine := range commentLines {
 +						if prevLine < commentLine && commentLine < curLine {
 +							// End this one if there is a comment before the new one.
-+							specs = append(specs, sortSpecs(localPrefix, fset, f, d.Specs[i:j])...)
++							specs = append(specs, sortSpecs(localPrefix, tokFile, f, d.Specs[i:j])...)
 +							i = j
 +							break
 +						}
 +					}
 +				}
  			}
++
  		}
- 		specs = append(specs, sortSpecs(localPrefix, fset, f, d.Specs[i:])...)
--- 
-2.31.1
-
+ 		specs = append(specs, sortSpecs(localPrefix, tokFile, f, d.Specs[i:])...)
+ 		d.Specs = specs
