diff --git a/Lib/shlex.py b/Lib/shlex.py
index 6114d2d..e7c8acc 100644
--- a/Lib/shlex.py
+++ b/Lib/shlex.py
@@ -48,7 +48,6 @@
         self.state = ' '
         self.pushback = deque()
         self.lineno = 1
-        self._lines_found = 0
         self.debug = 0
         self.token = ''
         self.filestack = deque()
@@ -119,23 +118,12 @@
         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':
-                # In case newline is the first character increment lineno
-                if i == 1:
-                    self.lineno += 1
-                else:
-                    self._lines_found += 1
-
+                self.lineno = self.lineno + 1
             if self.debug >= 3:
                 print "shlex: in state", repr(self.state), \
                       "I see character:", repr(nextchar)
@@ -155,7 +143,6 @@
                         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'
@@ -223,7 +210,6 @@
                         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 = ' '
