Index: /trunk/include/VBox/HostServices/VBoxClipboardSvc.h
===================================================================
--- /trunk/include/VBox/HostServices/VBoxClipboardSvc.h	(revision 82480)
+++ /trunk/include/VBox/HostServices/VBoxClipboardSvc.h	(revision 82481)
@@ -34,8 +34,9 @@
  *     VBox < 6.1, deprecated:
  *         | First, initial implementation since feature was developed.
- *           Has no protocol handshake / versioning support, the client's
- *           waiting message also acted as retrieving the parameters from
- *           the host (always and only *exactly* two parameters). Does
- *           not have the ability to control / handle parallel transfers.
+ *           Has no protocol handshake or support for feature exchange,
+ *           the client's waiting message also acted as retrieving the
+ *           parameters from the host (always and only *exactly* two
+ *           parameters). Does not have the ability to control / handle parallel
+ *           transfers.
  *
  *     VBox >= 6.1:
@@ -61,18 +62,4 @@
 #include <VBox/GuestHost/SharedClipboard-transfers.h>
 #endif
-
-/*
- * The saved state versions.
- * We're using it as a version field with the high bit set.
- */
-/** Adds the client's POD state and client state flags. */
-#define VBOX_SHCL_SSM_VER_2          UINT32_C(0x80000004)
-/** New saved state (since VBox 6.1 Beta 2). */
-#define VBOX_SHCL_SSM_VER_1          UINT32_C(0x80000003)
-/** Older saved states (VBox < 6.1). Includes legacy protocol state. */
-#define VBOX_SHCL_SSM_VER_0          UINT32_C(0x80000002)
-
-/** Latest Shared Clipboard SSM version. */
-#define VBOX_SHCL_SSM_VER_LATEST     VBOX_SHCL_SSM_VER_2
 
 /*
Index: /trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc.cpp
===================================================================
--- /trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc.cpp	(revision 82480)
+++ /trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc.cpp	(revision 82481)
@@ -237,4 +237,31 @@
 
 using namespace HGCM;
+
+
+/*********************************************************************************************************************************
+*   Defined Constants And Macros                                                                                                 *
+*********************************************************************************************************************************/
+/** @name The saved state versions for the shared clipboard service.
+ *
+ * @note We set bit 31 because prior to version 0x80000002 there would be a
+ *       structure size rather than a version number.  Setting bit 31 dispells
+ *       any possible ambiguity.
+ *
+ * @{ */
+/** The current saved state version. */
+#define VBOX_SHCL_SAVED_STATE_VER_CURRENT   VBOX_SHCL_SAVED_STATE_VER_6_1RC1
+/** Adds the client's POD state and client state flags.
+ * @since 6.1 RC1 */
+#define VBOX_SHCL_SAVED_STATE_VER_6_1RC1    UINT32_C(0x80000004)
+/** First attempt saving state during @bugref{9437} development.
+ * @since 6.1 BETA 2   */
+#define VBOX_SHCL_SAVED_STATE_VER_6_1B2     UINT32_C(0x80000003)
+/** First structured version.
+ * @since 3.1 / r53668 */
+#define VBOX_SHCL_SAVED_STATE_VER_3_1       UINT32_C(0x80000002)
+/** This was just a state memory dump, including pointers and everything.
+ * @note This is not supported any more. Sorry.  */
+#define VBOX_SHCL_SAVED_STATE_VER_NOT_SUPP  (ARCH_BITS == 64 ? UINT32_C(72) : UINT32_C(48))
+/** @} */
 
 
@@ -2139,5 +2166,5 @@
 
     /* Write Shared Clipboard saved state version. */
-    SSMR3PutU32(pSSM, VBOX_SHCL_SSM_VER_LATEST);
+    SSMR3PutU32(pSSM, VBOX_SHCL_SAVED_STATE_VER_CURRENT);
 
     int rc = SSMR3PutStructEx(pSSM, &pClient->State, sizeof(pClient->State), 0 /*fFlags*/, &s_aShClSSMClientState[0], NULL);
@@ -2231,11 +2258,10 @@
     LogFunc(("u32ClientID=%RU32, lenOrVer=%#RX64\n", u32ClientID, lenOrVer));
 
-    if (lenOrVer == VBOX_SHCL_SSM_VER_0)
-    {
+    if (lenOrVer == VBOX_SHCL_SAVED_STATE_VER_3_1)
         return svcLoadStateV0(u32ClientID, pvClient, pSSM, uVersion);
-    }
-    else if (lenOrVer >= VBOX_SHCL_SSM_VER_1)
-    {
-        if (lenOrVer >= VBOX_SHCL_SSM_VER_2)
+
+    if (lenOrVer >= VBOX_SHCL_SAVED_STATE_VER_6_1B2)
+    {
+        if (lenOrVer >= VBOX_SHCL_SAVED_STATE_VER_6_1RC1)
         {
             rc = SSMR3GetStructEx(pSSM, &pClient->State, sizeof(pClient->State), 0 /* fFlags */,
