diff --git a/CHANGES b/CHANGES
index 43d3281196e129b9b48a22be2f2cecee39760ef2..2a7338bf62921bda315655019767af05c5bbe85b 100644
--- a/CHANGES
+++ b/CHANGES
@@ -20,6 +20,7 @@ OpenLDAP 2.4.20 Engineering
 	Fixed slapd inclusion of ac/unistd.h (ITS#6342)
 	Fixed slapd invalid dn log message (ITS#6309)
 	Fixed slapd lockup on shutdown (ITS#6372)
+	Fixed slapd RID range to be decimal only (ITS#6394)
 	Fixed slapd sl_free to better reclaim memory (ITS#6380)
 	Fixed slapd syncrepl deletes in MirrorMode (ITS#6368)
 	Fixed slapd syncrepl to use correct SID (ITS#6367)
diff --git a/doc/man/man5/slapd-config.5 b/doc/man/man5/slapd-config.5
index 8ec7a52744bb89eed470126e70e9101bdb5c72d7..24d00bb4906dac94a9ded4123e565db16782c1d6 100644
--- a/doc/man/man5/slapd-config.5
+++ b/doc/man/man5/slapd-config.5
@@ -1676,7 +1676,7 @@ replication engine.
 identifies the current
 .B syncrepl
 directive within the replication consumer site.
-It is a non-negative integer having no more than three digits.
+It is a non-negative integer having no more than three decimal digits.
 
 .B provider
 specifies the replication provider site containing the master content
diff --git a/doc/man/man5/slapd.conf.5 b/doc/man/man5/slapd.conf.5
index 8d0e3c88cc4dd46b14bd9c0e7203f33d1b08cbef..ff4242e19dac3b6b28021438a37d1fd968e0dfaf 100644
--- a/doc/man/man5/slapd.conf.5
+++ b/doc/man/man5/slapd.conf.5
@@ -1663,8 +1663,8 @@ replication engine.
 identifies the current
 .B syncrepl
 directive within the replication consumer site.
-It is a non-negative integer not greater than 4095 (limited
-to three hexadecimal digits).
+It is a non-negative integer not greater than 999 (limited
+to three decimal digits).
 
 .B provider
 specifies the replication provider site containing the master content
diff --git a/servers/slapd/syncrepl.c b/servers/slapd/syncrepl.c
index a9b3d7150bf5231a4ea035c4845da4cadfe1395c..703fe25a6bb5c096177387df6d4ce337406fbccb 100644
--- a/servers/slapd/syncrepl.c
+++ b/servers/slapd/syncrepl.c
@@ -4027,10 +4027,10 @@ parse_syncrepl_line(
 				Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->cr_msg, 0 );
 				return -1;
 			}
-			if ( tmp > SLAP_SYNC_SID_MAX || tmp < 0 ) {
+			if ( tmp > SLAP_SYNC_RID_MAX || tmp < 0 ) {
 				snprintf( c->cr_msg, sizeof( c->cr_msg ),
 					"Error: parse_syncrepl_line: "
-					"syncrepl id %d is out of range [0..4095]", tmp );
+					"syncrepl id %d is out of range [0..%d]", tmp, SLAP_SYNC_RID_MAX );
 				Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->cr_msg, 0 );
 				return -1;
 			}
@@ -4555,7 +4555,7 @@ syncrepl_unparse( syncinfo_t *si, struct berval *bv )
 	si->si_bindconf.sb_version = LDAP_VERSION3;
 
 	ptr = buf;
-	assert( si->si_rid >= 0 && si->si_rid <= SLAP_SYNC_SID_MAX );
+	assert( si->si_rid >= 0 && si->si_rid <= SLAP_SYNC_RID_MAX );
 	len = snprintf( ptr, WHATSLEFT, IDSTR "=%03d " PROVIDERSTR "=%s",
 		si->si_rid, si->si_bindconf.sb_uri.bv_val );
 	if ( len >= sizeof( buf ) ) return;