diff --git a/rfbplayer/resource.h b/rfbplayer/resource.h
index 54ab200..249a7d9 100644
--- a/rfbplayer/resource.h
+++ b/rfbplayer/resource.h
@@ -24,13 +24,14 @@
 #define ID_HELP_COMMANDLINESEITCHES     40026
 #define ID_HELP_ABOUT                   40027
 #define ID_OPTIONS                      40029
+#define ID_RETURN                       40044
 
 // Next default values for new objects
 // 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_NEXT_RESOURCE_VALUE        133
-#define _APS_NEXT_COMMAND_VALUE         40044
+#define _APS_NEXT_COMMAND_VALUE         40045
 #define _APS_NEXT_CONTROL_VALUE         1003
 #define _APS_NEXT_SYMED_VALUE           101
 #endif
diff --git a/rfbplayer/rfbplayer.cxx b/rfbplayer/rfbplayer.cxx
index 3fab791..7cd1fe3 100644
--- a/rfbplayer/rfbplayer.cxx
+++ b/rfbplayer/rfbplayer.cxx
@@ -44,6 +44,7 @@
 // -=- RfbPlayer's defines
 
 #define strcasecmp _stricmp
+#define MAX_SPEED 10
 
 #define ID_TOOLBAR 500
 #define ID_PLAY 510
@@ -310,6 +311,25 @@
     case ID_FULLSCREEN:
       MessageBox(getMainHandle(), "It is not working yet!", "RfbPlayer", MB_OK);
       break;
+    case ID_RETURN:
+        // Update the speed if return pressed in speedEdit
+      if (speedEdit == GetFocus()) {
+        char speedStr[20], *stopStr;
+        GetWindowText(speedEdit, speedStr, sizeof(speedStr));
+        double speed = strtod(speedStr, &stopStr);
+        if (speed > 0) {
+          speed = min(MAX_SPEED, speed);
+          // Update speedUpDown position
+          SendMessage(speedUpDown, UDM_SETPOS, 
+            0, MAKELONG((short)(speed / 0.5), 0));
+        } else {
+          speed = getSpeed();
+        }
+        setSpeed(speed);
+        sprintf(speedStr, "%.2f", speed);
+        SetWindowText(speedEdit, speedStr);
+      }
+      break;
     }
     break;
 
@@ -347,24 +367,30 @@
     switch (((NMHDR*)lParam)->code) {
     case UDN_DELTAPOS:
       if ((int)wParam == ID_SPEED_UPDOWN) {
+        BOOL lResult = FALSE;
         char speedStr[20] = "\0";
         DWORD speedRange = SendMessage(speedUpDown, UDM_GETRANGE, 0, 0);
         LPNM_UPDOWN upDown = (LPNM_UPDOWN)lParam;
         double speed;
 
-        // the out of range checking
+        // The out of range checking
         if (upDown->iDelta > 0) {
           speed = min(upDown->iPos + upDown->iDelta, LOWORD(speedRange)) * 0.5;
         } else {
+          // It's need to round the UpDown position
+          if ((upDown->iPos * 0.5) != getSpeed()) {
+            upDown->iDelta = 0;
+            lResult = TRUE;
+          }
           speed = max(upDown->iPos + upDown->iDelta, HIWORD(speedRange)) * 0.5;
         }
         _gcvt(speed, 5, speedStr);
         sprintf(speedStr, "%.2f", speed);
         SetWindowText(speedEdit, speedStr);
         setSpeed(speed);
+        return lResult;
       }
-      return 0;
-    };
+    }
     return 0;
 
   case WM_CLOSE:
diff --git a/rfbplayer/rfbplayer.rc b/rfbplayer/rfbplayer.rc
index 8ac1ea3..6d64aef 100644
--- a/rfbplayer/rfbplayer.rc
+++ b/rfbplayer/rfbplayer.rc
@@ -183,6 +183,7 @@
     VK_F5,          ID_ZOOM_50,             VIRTKEY, NOINVERT
     VK_F6,          ID_ZOOM_100,            VIRTKEY, NOINVERT
     VK_F7,          ID_ZOOM_200,            VIRTKEY, NOINVERT
+    VK_RETURN,      ID_RETURN,              VIRTKEY, NOINVERT
     VK_RETURN,      ID_FULLSCREEN,          VIRTKEY, ALT, NOINVERT
     VK_SPACE,       ID_PLAYPAUSE,           VIRTKEY, NOINVERT
     "X",            ID_EXIT,                VIRTKEY, ALT, NOINVERT
