diff --git a/java/src/com/tightvnc/rfbplayer/FbsInputStream.java b/java/src/com/tightvnc/rfbplayer/FbsInputStream.java
index 4057aca..2e90bc4 100644
--- a/java/src/com/tightvnc/rfbplayer/FbsInputStream.java
+++ b/java/src/com/tightvnc/rfbplayer/FbsInputStream.java
@@ -30,6 +30,7 @@
   protected long startTime;
   protected long timeOffset;
   protected long seekOffset;
+  protected boolean seekBackwards;
   protected boolean paused;
   protected double playbackSpeed;
 
@@ -57,6 +58,7 @@
     startTime = System.currentTimeMillis();
     timeOffset = 0;
     seekOffset = -1;
+    seekBackwards = false;
     paused = false;
     playbackSpeed = 1.0;
 
@@ -105,6 +107,7 @@
     startTime = -1;
     timeOffset = 0;
     seekOffset = -1;
+    seekBackwards = false;
     paused = false;
     playbackSpeed = 1.0;
 
@@ -128,6 +131,9 @@
   public synchronized void setTimeOffset(long pos)
   {
     seekOffset = (long)(pos / playbackSpeed);
+    if (seekOffset < timeOffset) {
+      seekBackwards = true;
+    }
     notify();
   }
 
@@ -147,6 +153,16 @@
     return (seekOffset >= 0);
   }
 
+  public long getSeekOffset()
+  {
+    return seekOffset;
+  }
+
+  public boolean isPaused()
+  {
+    return paused;
+  }
+
   public synchronized void pausePlayback()
   {
     paused = true;
@@ -171,6 +187,11 @@
 
   private synchronized boolean fillBuffer() throws IOException
   {
+    // The reading thread should be interrupted on backward seeking.
+    if (seekBackwards)
+      throw new EOFException("[REWIND]");
+
+    // Just wait unless we are performing playback OR seeking.
     waitWhilePaused();
 
     bufferSize = (int)readUnsigned32();
diff --git a/java/src/com/tightvnc/rfbplayer/RfbPlayer.java b/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
index c2fa6f6..3256804 100644
--- a/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
+++ b/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
@@ -161,12 +161,21 @@
 	try {
 	  setPaused(!autoPlay);
 	  rfb.fbs.setSpeed(playbackSpeed);
-          setPos(initialTimeOffset);
+	  if (initialTimeOffset > rfb.fbs.getTimeOffset())
+	    setPos(initialTimeOffset); // don't seek backwards here
 	  vc.processNormalProtocol();
 	} catch (EOFException e) {
-	  initialTimeOffset = 0;
-	  autoPlay = false;
-	  rfb.newSession(url);
+	  if (e.getMessage() != null && e.getMessage().equals("[REWIND]")) {
+	    // A special type of EOFException allowing us to seek backwards.
+	    initialTimeOffset = rfb.fbs.getSeekOffset();
+	    autoPlay = !rfb.fbs.isPaused();
+	    rfb.newSession(url);
+	  } else {
+	    // Return to the beginning after the playback is finished.
+	    initialTimeOffset = 0;
+	    autoPlay = false;
+	    rfb.newSession(url);
+	  }
 	}
       }
 
