diff --git a/java/src/com/tightvnc/rfbplayer/ButtonPanel.java b/java/src/com/tightvnc/rfbplayer/ButtonPanel.java
index 62fa88b..1a9db17 100644
--- a/java/src/com/tightvnc/rfbplayer/ButtonPanel.java
+++ b/java/src/com/tightvnc/rfbplayer/ButtonPanel.java
@@ -45,9 +45,9 @@
     add(pauseButton);
     pauseButton.addActionListener(this);
 
-    posText = new TextField(4);
-    posText.setEditable(false);
+    posText = new TextField(5);
     add(posText);
+    posText.addActionListener(this);
   }
 
   public void setMode(int mode) {
@@ -57,12 +57,14 @@
       playButton.setEnabled(true);
       pauseButton.setLabel("Pause");
       pauseButton.setEnabled(true);
+      posText.setEditable(false);
       break;
     case RfbPlayer.MODE_PAUSED:
       playButton.setLabel("Stop");
       playButton.setEnabled(true);
       pauseButton.setLabel("Resume");
       pauseButton.setEnabled(true);
+      posText.setEditable(true);
       break;
     default:
       // case RfbPlayer.MODE_STOPPED:
@@ -70,6 +72,7 @@
       playButton.setEnabled(true);
       pauseButton.setLabel("Pause");
       pauseButton.setEnabled(false);
+      posText.setEditable(true);
       break;
     }
     player.setMode(mode);
@@ -99,6 +102,8 @@
     } else if (evt.getSource() == pauseButton) {
       setMode((player.getMode() == RfbPlayer.MODE_PAUSED) ?
               RfbPlayer.MODE_PLAYBACK : RfbPlayer.MODE_PAUSED);
+    } else if (evt.getSource() == posText) {
+      player.setPos(Integer.parseInt(posText.getText()));
     }
   }
 }
diff --git a/java/src/com/tightvnc/rfbplayer/FbsInputStream.java b/java/src/com/tightvnc/rfbplayer/FbsInputStream.java
index 59418d9..30ee42b 100644
--- a/java/src/com/tightvnc/rfbplayer/FbsInputStream.java
+++ b/java/src/com/tightvnc/rfbplayer/FbsInputStream.java
@@ -106,7 +106,20 @@
     return (int)(timeOffset / 1000);
   }
 
-  public void resumeReading()
+  public void setPos(int pos)
+  {
+  }
+
+  public boolean isSeeking()
+  {
+    return false;
+  }
+
+  public void pausePlayback()
+  {
+  }
+
+  public void resumePlayback()
   {
     startTime = System.currentTimeMillis() - timeOffset;
   }
diff --git a/java/src/com/tightvnc/rfbplayer/RfbPlayer.java b/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
index 741736e..16b3889 100644
--- a/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
+++ b/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
@@ -194,6 +194,10 @@
     }
   }
 
+  public void setPos(int pos) {
+    fbsStream.setPos(pos);
+  }
+
   public void updatePos() {
     buttonPanel.setPos(fbsStream.getPos());
   }
diff --git a/java/src/com/tightvnc/rfbplayer/VncCanvas.java b/java/src/com/tightvnc/rfbplayer/VncCanvas.java
index f421df5..e0d9994 100644
--- a/java/src/com/tightvnc/rfbplayer/VncCanvas.java
+++ b/java/src/com/tightvnc/rfbplayer/VncCanvas.java
@@ -225,7 +225,7 @@
 	  throw new EOFException("Playback stopped");
 	}
 	if (player.getMode() == player.MODE_PLAYBACK) {
-	  player.fbsStream.resumeReading();
+	  player.fbsStream.resumePlayback();
 	}
       }
 
@@ -828,8 +828,9 @@
   //
 
   void scheduleRepaint(int x, int y, int w, int h) {
-    // Request repaint, deferred if necessary.
-    repaint(player.deferScreenUpdates, x, y, w, h);
+    // Request repaint if not in the seeking mode.
+    if (!player.fbsStream.isSeeking())
+      repaint(player.deferScreenUpdates, x, y, w, h);
   }
 
 }
