diff --git a/src/testdir/test_xxd.vim b/src/testdir/test_xxd.vim
index 922c5ab..fec0122 100644
--- a/src/testdir/test_xxd.vim
+++ b/src/testdir/test_xxd.vim
@@ -213,6 +213,39 @@
   call delete('XXDfile')
 endfunc
 
+func Test_xxd_patch()
+  let cmd = 'silent !' .. s:xxd_cmd .. ' -r Xxxdin Xxxdfile; ' .. s:xxd_cmd .. ' -g1 Xxxdfile > Xxxdout'
+  call writefile(["2: 41 41", "8: 42 42"], 'Xxxdin')
+  call writefile(['::::::::'], 'Xxxdfile')
+  exe cmd
+  call assert_equal(['00000000: 3a 3a 41 41 3a 3a 3a 3a 42 42                    ::AA::::BB'], readfile('Xxxdout'))
+
+  call writefile(["2: 43 43 ", "8: 44 44"], 'Xxxdin')
+  exe cmd
+  call assert_equal(['00000000: 3a 3a 43 43 3a 3a 3a 3a 44 44                    ::CC::::DD'], readfile('Xxxdout'))
+
+  call writefile(["2: 45 45  ", "8: 46 46"], 'Xxxdin')
+  exe cmd
+  call assert_equal(['00000000: 3a 3a 45 45 3a 3a 3a 3a 46 46                    ::EE::::FF'], readfile('Xxxdout'))
+  
+  call writefile(["2: 41 41", "08: 42 42"], 'Xxxdin')
+  call writefile(['::::::::'], 'Xxxdfile')
+  exe cmd
+  call assert_equal(['00000000: 3a 3a 41 41 3a 3a 3a 3a 42 42                    ::AA::::BB'], readfile('Xxxdout'))
+
+  call writefile(["2: 43 43 ", "09: 44 44"], 'Xxxdin')
+  exe cmd
+  call assert_equal(['00000000: 3a 3a 43 43 3a 3a 3a 3a 42 44 44                 ::CC::::BDD'], readfile('Xxxdout'))
+
+  call writefile(["2: 45 45  ", "0a: 46 46"], 'Xxxdin')
+  exe cmd
+  call assert_equal(['00000000: 3a 3a 45 45 3a 3a 3a 3a 42 44 46 46              ::EE::::BDFF'], readfile('Xxxdout'))
+  
+  call delete('Xxxdin')
+  call delete('Xxxdfile')
+  call delete('Xxxdout')
+endfunc
+
 " Various ways with wrong arguments that trigger the usage output.
 func Test_xxd_usage()
   for arg in ['-c', '-g', '-o', '-s', '-l', '-X', 'one two three']
diff --git a/src/version.c b/src/version.c
index 75c3519..0143761 100644
--- a/src/version.c
+++ b/src/version.c
@@ -758,6 +758,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3552,
+/**/
     3551,
 /**/
     3550,
diff --git a/src/xxd/xxd.c b/src/xxd/xxd.c
index 749df43..e9dab81 100644
--- a/src/xxd/xxd.c
+++ b/src/xxd/xxd.c
@@ -131,7 +131,7 @@
 extern long int strtol();
 extern long int ftell();
 
-char version[] = "xxd 2020-02-04 by Juergen Weigert et al.";
+char version[] = "xxd 2021-10-22 by Juergen Weigert et al.";
 #ifdef WIN32
 char osver[] = " (Win32)";
 #else
@@ -318,8 +318,7 @@
 	  if (fflush(fpo) != 0)
 	    die(3);
 #ifdef TRY_SEEK
-	  c = fseek(fpo, base_off + want_off - have_off, 1);
-	  if (c >= 0)
+	  if (fseek(fpo, base_off + want_off - have_off, 1) >= 0)
 	    have_off = base_off + want_off;
 #endif
 	  if (base_off + want_off < have_off)
@@ -349,12 +348,16 @@
       if (n1 < 0 && n2 < 0 && n3 < 0)
 	{
 	  /* already stumbled into garbage, skip line, wait and see */
-	  if (!hextype)
-	    want_off = 0;
-	  while ((c = getc(fpi)) != '\n' && c != EOF)
-	    ;
+	  while (c != '\n' && c != EOF)
+	    c = getc(fpi);
 	  if (c == EOF && ferror(fpi))
 	    die(2);
+	}
+      if (c == '\n')
+	{
+	  if (!hextype)
+	    want_off = 0;
+	  p = cols;
 	  ign_garb = 1;
 	}
     }
