diff --git a/Lib/shlex.py b/Lib/shlex.py
index 3edd3db..b9fd1dd 100644
--- a/Lib/shlex.py
+++ b/Lib/shlex.py
@@ -44,6 +44,7 @@
         self.state = ' '
         self.pushback = deque()
         self.lineno = 1
+        self._lines_found = 0
         self.debug = 0
         self.token = ''
         self.filestack = deque()
@@ -114,12 +115,23 @@
         return raw
 
     def read_token(self):
+        if self._lines_found:
+            self.lineno += self._lines_found
+            self._lines_found = 0
+
+        i = 0
         quoted = False
         escapedstate = ' '
         while True:
+            i += 1
             nextchar = self.instream.read(1)
             if nextchar == '\n':
-                self.lineno = self.lineno + 1
+                # In case newline is the first character increment lineno
+                if i == 1:
+                    self.lineno += 1
+                else:
+                    self._lines_found += 1
+
             if self.debug >= 3:
                 print("shlex: in state", repr(self.state), \
                       "I see character:", repr(nextchar))
@@ -139,6 +151,7 @@
                         continue
                 elif nextchar in self.commenters:
                     self.instream.readline()
+                    # Not considered a token so incrementing lineno directly
                     self.lineno = self.lineno + 1
                 elif self.posix and nextchar in self.escape:
                     escapedstate = 'a'
@@ -206,6 +219,7 @@
                         continue
                 elif nextchar in self.commenters:
                     self.instream.readline()
+                    # Not considered a token so incrementing lineno directly
                     self.lineno = self.lineno + 1
                     if self.posix:
                         self.state = ' '
diff --git a/Lib/test/test_shlex.py b/Lib/test/test_shlex.py
index 25e4b6d..1cd8220 100644
--- a/Lib/test/test_shlex.py
+++ b/Lib/test/test_shlex.py
@@ -173,6 +173,15 @@
                              "%s: %s != %s" %
                              (self.data[i][0], l, self.data[i][1:]))
 
+    def testLineNumbers(self):
+        data = '"a \n b \n c"\n"x"\n"y"'
+        for is_posix in (True, False):
+            s = shlex.shlex(data, posix=is_posix)
+            for i in (1, 4, 5):
+                s.read_token()
+                self.assertEqual(s.lineno, i)
+
+
 # Allow this test to be used with old shlex.py
 if not getattr(shlex, "split", None):
     for methname in dir(ShlexTest):
diff --git a/Misc/ACKS b/Misc/ACKS
index 39195ef..849abcd 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -774,6 +774,7 @@
 Gustavo Niemeyer
 Oscar Nierstrasz
 Hrvoje Niksic
+Birk Nilson
 Gregory Nofi
 Jesse Noller
 Bill Noon
diff --git a/Misc/NEWS b/Misc/NEWS
index c4a89f0..7a690f6 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -227,6 +227,9 @@
 Library
 -------
 
+- Issue #16121: Fix line number accounting in shlex. Patch by Birk
+  Nilson.
+
 - Issue #14720: sqlite3: Convert datetime microseconds correctly.
   Patch by Lowe Thiderman.
 
