         if(firstData) {
             firstData = false
             skipBytes = try analyzeBOM()
-        }
-
-        data.append(contentsOf: buffer[skipBytes ..< count])
+            data.append(contentsOf: buffer[skipBytes ..< count])
+        } else {
+            data.append(contentsOf: buffer[skipBytes ..< count])
+        }
     }
     
     /**

        self.streamDescription = description ?? stream.description
        self.firstData = true

        self.data = Data(capacity: self.bufferSize)
        self.buffer = [UInt8](repeating: 0, count: self.bufferSize)
        
        if(stream.streamStatus == .notOpen)

            return nil
        }

        if let  string = String(bytes: data, encoding: encoding),
                string.characters.count > 0
        {
            data.removeAll()
