diff --git a/src/xopen/__init__.py b/src/xopen/__init__.py
index <HASH>..<HASH> 100644
--- a/src/xopen/__init__.py
+++ b/src/xopen/__init__.py
@@ -254,7 +254,7 @@ class PipedGzipReader(Closing):
         self._stderr.close()
 
     def __iter__(self):
-        return self._file
+        return self
 
     def __next__(self):
         return self._file.__next__()
diff --git a/tests/test_xopen.py b/tests/test_xopen.py
index <HASH>..<HASH> 100644
--- a/tests/test_xopen.py
+++ b/tests/test_xopen.py
@@ -167,6 +167,16 @@ def test_pipedgzipwriter_has_iter_method(tmpdir):
         assert hasattr(f, '__iter__')
 
 
+def test_iter_without_with(fname):
+    it = iter(xopen(fname, "rt"))
+    assert CONTENT_LINES[0] == next(it)
+
+
+def test_pipedgzipreader_iter_without_with():
+    it = iter(PipedGzipReader("tests/file.txt.gz"))
+    assert CONTENT_LINES[0] == next(it)
+
+
 @pytest.mark.parametrize("mode", ["rb", "rt"])
 def test_pipedgzipreader_close(large_gzip, mode):
     with PipedGzipReader(large_gzip, mode=mode) as f:
Fix: iter() on PipedGzipReader needs to keep it alive

In code like

i = iter(xopen("a.gz"))

the created PipedGzipReader object must be kept alive