diff --git a/tests/contrib/test_iterio.py b/tests/contrib/test_iterio.py
index <HASH>..<HASH> 100644
--- a/tests/contrib/test_iterio.py
+++ b/tests/contrib/test_iterio.py
@@ -18,6 +18,7 @@ class TestIterO(object):
 
     def test_basic_native(self):
         io = IterIO(["Hello", "World", "1", "2", "3"])
+        io.seek(0)
         assert io.tell() == 0
         assert io.read(2) == "He"
         assert io.tell() == 2
diff --git a/werkzeug/contrib/iterio.py b/werkzeug/contrib/iterio.py
index <HASH>..<HASH> 100644
--- a/werkzeug/contrib/iterio.py
+++ b/werkzeug/contrib/iterio.py
@@ -258,7 +258,7 @@ class IterO(IterIO):
             raise IOError('Invalid argument')
         buf = []
         try:
-            tmp_end_pos = len(self._buf)
+            tmp_end_pos = len(self._buf or '')
             while pos > tmp_end_pos:
                 item = next(self._gen)
                 tmp_end_pos += len(item)
fix IterO.seek on newly created IterO object