diff --git a/CHANGELOG.rst b/CHANGELOG.rst
new file mode 100644
index 0000000..72316db
--- /dev/null
+++ b/CHANGELOG.rst
@@ -0,0 +1,4 @@
+## v0.2
+
+- Fixed a bug where the grid of the default estimator in a Pipeline step was
+  attributed to alternatives for that step. :issue:`10`.
diff --git a/README.rst b/README.rst
index e57dd0d..19c83ea 100644
--- a/README.rst
+++ b/README.rst
@@ -152,7 +152,7 @@ Searching over multiple grids.
         ...                 reduce=[kbest, pca])
         >>> gs = make_grid_search(pipe)
 
-.. |py-versions| image:: https://img.shields.io/pypi/pyversions/Django.svg
+.. |py-versions| image:: https://img.shields.io/pypi/pyversions/searchgrid.svg
     :alt: Python versions supported
 
 .. |version| image:: https://badge.fury.io/py/searchgrid.svg
diff --git a/doc/conf.py b/doc/conf.py
index c87eea2..16b8340 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -41,6 +41,7 @@ extensions = [
     'numpydoc',
     'sphinx.ext.ifconfig',
     'sphinx.ext.viewcode',
+    'sphinx_issues',
 ]
 
 # Add any paths that contain templates here, relative to this directory.
@@ -65,8 +66,8 @@ copyright = u'2017, Joel Nothman'
 #
 # The short X.Y version.
 
-version = '0.1'
-release = '0.1a1'
+version = '0.1.1'
+release = '0.1.1'
 
 # version = searchgrid.__version__
 # The full version, including alpha/beta/rc tags.
diff --git a/doc/index.rst b/doc/index.rst
index 5ea5fde..197487b 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -5,3 +5,8 @@ API Reference
 
 .. automodule:: searchgrid
    :members:
+
+Changelog
+.........
+
+.. include:: ../README.rst
diff --git a/doc/requirements.txt b/doc/requirements.txt
index a58ea28..100a1f5 100644
--- a/doc/requirements.txt
+++ b/doc/requirements.txt
@@ -2,3 +2,4 @@ numpy
 scipy
 scikit-learn
 numpydoc
+sphinx-issues
diff --git a/searchgrid.py b/searchgrid.py
index bbe4862..753a2a7 100644
--- a/searchgrid.py
+++ b/searchgrid.py
@@ -48,8 +48,16 @@ def _build_param_grid(estimator):
     # handle estimator parameters having their own grids
     for param_name, value in estimator.get_params().items():
         if '__' not in param_name and hasattr(value, 'get_params'):
-            grid = _update_grid(grid, _build_param_grid(value),
-                                param_name + '__')
+            out = []
+            value_grid = _build_param_grid(value)
+            for sub_grid in grid:
+                if param_name in sub_grid:
+                    sub_grid = [sub_grid]
+                else:
+                    sub_grid = _update_grid([sub_grid], value_grid,
+                                            param_name + '__')
+                out.extend(sub_grid)
+            grid = out
 
     # handle grid values having their own grids
     out = []
diff --git a/setup.py b/setup.py
index 7cdb90a..f2d609c 100644
--- a/setup.py
+++ b/setup.py
@@ -14,7 +14,7 @@ def setup_package():
     try:
         # See setup.cfg
         setup(name='searchgrid',
-              version='0.1a1',
+              version='0.1.1',
               py_modules=['searchgrid'],
               setup_requires=['pytest-runner'],
               tests_require=['pytest>=2.7', 'pytest-cov~=2.4'],

default Pipeline step's grid gets assigned to alternative steps
The final assertion here fails:
```python
    lr = set_grid(LogisticRegression(), C=[1, 2, 3])
    svc = SVC()
    grid = build_param_grid(set_grid(Pipeline([('root', lr)]), root=[lr, svc]))

    assert len(grid) == 2

    assert lr in grid[0]['root']
    assert svc not in grid[0]['root']
    assert 'root__C' in grid[0]

    assert svc in grid[1]['root']
    assert lr not in grid[1]['root']
    assert 'root__C' not in grid[1]
```
diff --git a/test_searchgrid.py b/test_searchgrid.py
index 242b268..4f31d04 100644
--- a/test_searchgrid.py
+++ b/test_searchgrid.py
@@ -48,6 +48,22 @@ def test_build_param_grid_set_estimator():
     assert build_param_grid(estimator) == param_grid
 
 
+def test_regression():
+    lr = set_grid(LogisticRegression(), C=[1, 2, 3])
+    svc = SVC()
+    grid = build_param_grid(set_grid(Pipeline([('root', lr)]), root=[lr, svc]))
+
+    assert len(grid) == 2
+
+    assert lr in grid[0]['root']
+    assert svc not in grid[0]['root']
+    assert 'root__C' in grid[0]
+
+    assert svc in grid[1]['root']
+    assert lr not in grid[1]['root']
+    assert 'root__C' not in grid[1]
+
+
 def test_make_grid_search():
     X, y = load_iris(return_X_y=True)
     lr = LogisticRegression()

pip install -e .
parse_log_pytest
requirements.txt
pytest pytest-cov python-coveralls numpydoc
3.6
test_requirements.txt doc/requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
alabaster==0.7.13
attrs==22.2.0
Babel==2.11.0
certifi==2021.5.30
charset-normalizer==2.0.12
coverage==6.2
docutils==0.17.1
flake8==5.0.4
idna==3.10
imagesize==1.4.1
importlib-metadata==4.2.0
iniconfig==1.1.1
Jinja2==3.0.3
joblib==1.1.1
MarkupSafe==2.0.1
mccabe==0.7.0
numpy==1.19.5
numpydoc==1.1.0
packaging==21.3
pluggy==1.0.0
py==1.11.0
pycodestyle==2.9.1
pyflakes==2.5.0
Pygments==2.14.0
pyparsing==3.1.4
pytest==7.0.1
pytest-cov==4.0.0
python-coveralls==2.9.3
pytz==2025.2
PyYAML==6.0.1
requests==2.27.1
scikit-learn==0.24.2
scipy==1.5.4
-e git+https://github.com/jnothman/searchgrid.git@0c21b167008831b2a87259d31a6faabe711e33c4#egg=searchgrid
six==1.17.0
snowballstemmer==2.2.0
Sphinx==4.3.2
sphinxcontrib-applehelp==1.0.2
sphinxcontrib-devhelp==1.0.2
sphinxcontrib-htmlhelp==2.0.0
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==1.0.3
sphinxcontrib-serializinghtml==1.1.5
threadpoolctl==3.1.0
tomli==1.2.3
typing_extensions==4.1.1
urllib3==1.26.20
zipp==3.6.0

name: searchgrid
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2021.5.30=py36h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.3=he6710b0_2
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=21.2.2=py36h06a4308_0
  - python=3.6.13=h12debd9_1
  - readline=8.2=h5eee18b_0
  - setuptools=58.0.4=py36h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - alabaster==0.7.13
      - attrs==22.2.0
      - babel==2.11.0
      - charset-normalizer==2.0.12
      - coverage==6.2
      - docutils==0.17.1
      - flake8==5.0.4
      - idna==3.10
      - imagesize==1.4.1
      - importlib-metadata==4.2.0
      - iniconfig==1.1.1
      - jinja2==3.0.3
      - joblib==1.1.1
      - markupsafe==2.0.1
      - mccabe==0.7.0
      - numpy==1.19.5
      - numpydoc==1.1.0
      - packaging==21.3
      - pluggy==1.0.0
      - py==1.11.0
      - pycodestyle==2.9.1
      - pyflakes==2.5.0
      - pygments==2.14.0
      - pyparsing==3.1.4
      - pytest==7.0.1
      - pytest-cov==4.0.0
      - python-coveralls==2.9.3
      - pytz==2025.2
      - pyyaml==6.0.1
      - requests==2.27.1
      - scikit-learn==0.24.2
      - scipy==1.5.4
      - six==1.17.0
      - snowballstemmer==2.2.0
      - sphinx==4.3.2
      - sphinxcontrib-applehelp==1.0.2
      - sphinxcontrib-devhelp==1.0.2
      - sphinxcontrib-htmlhelp==2.0.0
      - sphinxcontrib-jsmath==1.0.1
      - sphinxcontrib-qthelp==1.0.3
      - sphinxcontrib-serializinghtml==1.1.5
      - threadpoolctl==3.1.0
      - tomli==1.2.3
      - typing-extensions==4.1.1
      - urllib3==1.26.20
      - zipp==3.6.0
prefix: /opt/conda/envs/searchgrid

test_searchgrid.py::test_regression
test_searchgrid.py::test_build_param_grid[estimator0-param_grid0] test_searchgrid.py::test_build_param_grid[estimator1-param_grid1] test_searchgrid.py::test_build_param_grid[estimator2-param_grid2] test_searchgrid.py::test_build_param_grid_set_estimator test_searchgrid.py::test_make_grid_search
README.rst doc/requirements.txt setup.py searchgrid.py doc/conf.py CHANGELOG.rst doc/index.rst
README.rst doc/requirements.txt setup.py searchgrid.py doc/conf.py CHANGELOG.rst doc/index.rst