diff --git a/rfbplayer/PlayerOptions.cxx b/rfbplayer/PlayerOptions.cxx
index 8bf8ff2..4494e26 100644
--- a/rfbplayer/PlayerOptions.cxx
+++ b/rfbplayer/PlayerOptions.cxx
@@ -42,7 +42,6 @@
     acceptBell = regKey.getBool(_T("AcceptBell"), DEFAULT_ACCEPT_BELL);
     acceptCutText = regKey.getBool(_T("AcceptCutText"), DEFAULT_ACCEPT_CUT_TEXT);
     autoPlay = regKey.getBool(_T("AutoPlay"), DEFAULT_AUTOPLAY);
-    loopPlayback = regKey.getBool(_T("LoopPlayback"), DEFAULT_LOOP_PLAYBACK);
     askPixelFormat = regKey.getBool(_T("AskPixelFormat"), DEFAULT_ASK_PF);
     if (pPF) delete pPF;
   } catch (rdr::Exception e) {
@@ -62,7 +61,6 @@
     regKey.setBool(_T("AcceptBell"), acceptBell);
     regKey.setBool(_T("AcceptCutText"), acceptCutText);
     regKey.setBool(_T("AutoPlay"), autoPlay);
-    regKey.setBool(_T("LoopPlayback"), loopPlayback);
     regKey.setBool(_T("AskPixelFormat"), askPixelFormat);
   } catch (rdr::Exception e) {
     MessageBox(0, e.str(), e.type(), MB_OK | MB_ICONERROR);
diff --git a/rfbplayer/rfbplayer.cxx b/rfbplayer/rfbplayer.cxx
index 552da3d..87f4886 100644
--- a/rfbplayer/rfbplayer.cxx
+++ b/rfbplayer/rfbplayer.cxx
@@ -64,7 +64,8 @@
  "                \t  is double speed, 0.5 is half speed. Default: 1.0.\r\n"
  "  -pos <ms>     \t- Sets initial time position in the session file,\r\n"
  "                \t  in milliseconds. Default: 0.\r\n"
- "  -autoplay     \t- Runs the player in the playback mode.\r\n";
+ "  -autoplay     \t- Runs the player in the playback mode.\r\n"
+ "  -loop         \t- Replays the rfb session.";
 
 // -=- RfbPlayer's defines
 
@@ -276,6 +277,7 @@
     disableTBandMenuItems();
     setTitle("None");
   }
+  init();
 }
 
 RfbPlayer::~RfbPlayer() {
@@ -1071,6 +1073,11 @@
   return 0;
 }
 
+void RfbPlayer::init() {
+  if (options.loopPlayback) CheckMenuItem(hMenu, ID_LOOP, MF_CHECKED);
+  else CheckMenuItem(hMenu, ID_LOOP, MF_UNCHECKED);
+}
+
 void RfbPlayer::closeSessionFile() {
   char speedStr[10];
   DWORD dwStyle;
@@ -1367,6 +1374,12 @@
       continue;
     }
 
+    if ((strcasecmp(argv[i], "-loop") == 0) ||
+        (strcasecmp(argv[i], "/loop") == 0) && (i < argc-1)) {
+      playerOptions.loopPlayback = true;
+      continue;
+    }
+
     if (i != argc - 1)
       return false;
   }
diff --git a/rfbplayer/rfbplayer.h b/rfbplayer/rfbplayer.h
index ec4eef0..e1c0b3d 100644
--- a/rfbplayer/rfbplayer.h
+++ b/rfbplayer/rfbplayer.h
@@ -59,6 +59,7 @@
     void calculateScrollBars();
     void close(const char* reason=0);
     void updatePos(long pos);
+    void init();
 
     // -=- Coordinate conversions
 
