diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index fd06af6d7589756b8bd0b641ac9991083bc374b0..cc431da2d7e659e4e4a3ff4273dd64f2f2528945 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2006-09-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	PR libgfortran/29053
+	* gfortran.dg/streamio_9.f90: New test.
+	* gfortran.dg/streamio_10.f90: New test.
+
 2006-09-14  Andrew Pinski  <pinskia@physics.uc.edu>
 
 	PR C++/29002
diff --git a/gcc/testsuite/gfortran.dg/streamio_10.f90 b/gcc/testsuite/gfortran.dg/streamio_10.f90
new file mode 100644
index 0000000000000000000000000000000000000000..e49617e2931989381758460987b7ba1ae7b89fe3
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/streamio_10.f90
@@ -0,0 +1,37 @@
+! { dg-do run }
+! PR25093 Stream IO test 10
+! Contributed by Jerry DeLisle <jvdelisle@gcc.gnu.org>.
+! Test case derived from that given in PR by Steve Kargl.
+program stream_io_10
+  implicit none
+  integer :: a(4), b(4)
+  integer(kind=8) :: thepos
+  a = (/ 1, 2, 3, 4 /)
+  b = a
+  open(10, file="teststream", access="stream")
+  write(10) a
+  inquire(10, pos=thepos)
+  if (thepos.ne.17) call abort()
+
+  read(10, pos=1)
+  inquire(10, pos=thepos)
+  if (thepos.ne.1) call abort()
+
+  write(10, pos=15)
+  inquire(10, pos=thepos)
+  if (thepos.ne.15) call abort()
+
+  read(10, pos=3)
+  inquire(10, pos=thepos)
+  if (thepos.ne.3) call abort()
+
+  write(10, pos=1)
+  inquire(10, pos=thepos)
+  if (thepos.ne.1) call abort()
+
+  a = 0
+  read(10) a
+  if (any(a /= b)) call abort()
+
+  close(10, status="delete")
+end program stream_io_10
diff --git a/gcc/testsuite/gfortran.dg/streamio_9.f90 b/gcc/testsuite/gfortran.dg/streamio_9.f90
new file mode 100644
index 0000000000000000000000000000000000000000..150c1c6c3934be16f88035ba995c04f31022f3cb
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/streamio_9.f90
@@ -0,0 +1,31 @@
+! { dg-do run }
+! PR29053 Stream IO test 9.
+! Contributed by Jerry DeLisle <jvdelisle@gcc.gnu.org>.
+! Test case derived from that given in PR by Steve Kargl.
+program pr29053
+   implicit none
+   real dt, t, u, a(10), b(10)
+   integer i, place
+   dt = 1.e-6
+   a = real( (/ (i, i=1, 10) /) )
+   b = a
+   open(unit=11, file='a.dat', access='stream')
+   open(unit=12, file='b.dat', access='stream')
+   do i = 1, 10
+      t = i * dt
+      write(11) t
+      write(12) a
+   end do
+   rewind(11)
+   rewind(12)
+   do i = 1, 10
+      t = i * dt
+      read(12) a
+      if (any(a.ne.b)) call abort()
+      read(11) u
+      if (u.ne.t) call abort()
+   end do
+   close(11, status="delete")
+   close(12, status="delete")
+end program pr29053
+