diff --git a/mercurial/bundle2.py b/mercurial/bundle2.py
index 7d9b1b50cad5e03180f595c6da59bd8bfb68437e_bWVyY3VyaWFsL2J1bmRsZTIucHk=..1b5880352314e323b73debc9bbd7c92ba27f4863_bWVyY3VyaWFsL2J1bmRsZTIucHk= 100644
--- a/mercurial/bundle2.py
+++ b/mercurial/bundle2.py
@@ -1532,7 +1532,7 @@
     if role == 'server':
         streamsupported = repo.ui.configbool('server', 'uncompressed',
                                              untrusted=True)
-        featuresupported = repo.ui.configbool('experimental', 'bundle2.stream')
+        featuresupported = repo.ui.configbool('server', 'bundle2.stream')
 
         if not streamsupported or not featuresupported:
             caps.pop('stream')
diff --git a/mercurial/configitems.py b/mercurial/configitems.py
index 7d9b1b50cad5e03180f595c6da59bd8bfb68437e_bWVyY3VyaWFsL2NvbmZpZ2l0ZW1zLnB5..1b5880352314e323b73debc9bbd7c92ba27f4863_bWVyY3VyaWFsL2NvbmZpZ2l0ZW1zLnB5 100644
--- a/mercurial/configitems.py
+++ b/mercurial/configitems.py
@@ -456,9 +456,6 @@
 coreconfigitem('experimental', 'bundle2.pushback',
     default=False,
 )
-coreconfigitem('experimental', 'bundle2.stream',
-    default=False,
-)
 coreconfigitem('experimental', 'bundle2lazylocking',
     default=False,
 )
@@ -973,6 +970,10 @@
 coreconfigitem('server', 'bundle1gd.push',
     default=None,
 )
+coreconfigitem('server', 'bundle2.stream',
+    default=False,
+    alias=[('experimental', 'bundle2.stream')]
+)
 coreconfigitem('server', 'compressionengines',
     default=list,
 )
diff --git a/mercurial/help/config.txt b/mercurial/help/config.txt
index 7d9b1b50cad5e03180f595c6da59bd8bfb68437e_bWVyY3VyaWFsL2hlbHAvY29uZmlnLnR4dA==..1b5880352314e323b73debc9bbd7c92ba27f4863_bWVyY3VyaWFsL2hlbHAvY29uZmlnLnR4dA== 100644
--- a/mercurial/help/config.txt
+++ b/mercurial/help/config.txt
@@ -1927,6 +1927,10 @@
     repositories to the exchange format required by the bundle1 data
     format can consume a lot of CPU.
 
+``bundle2.stream``
+    Whether to allow clients to pull using the bundle2 streaming protocol.
+    (default: False)
+
 ``zliblevel``
     Integer between ``-1`` and ``9`` that controls the zlib compression level
     for wire protocol commands that send zlib compressed output (notably the
diff --git a/tests/test-clone-uncompressed.t b/tests/test-clone-uncompressed.t
index 7d9b1b50cad5e03180f595c6da59bd8bfb68437e_dGVzdHMvdGVzdC1jbG9uZS11bmNvbXByZXNzZWQudA==..1b5880352314e323b73debc9bbd7c92ba27f4863_dGVzdHMvdGVzdC1jbG9uZS11bmNvbXByZXNzZWQudA== 100644
--- a/tests/test-clone-uncompressed.t
+++ b/tests/test-clone-uncompressed.t
@@ -4,7 +4,7 @@
 
 #if stream-bundle2
   $ cat << EOF >> $HGRCPATH
-  > [experimental]
+  > [server]
   > bundle2.stream = yes
   > EOF
 #endif