diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index bc376d7..8bf8a22 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -1,6 +1,14 @@
 Change log
 ================================================================================
 
+0.6.4 - ???
+--------------------------------------------------------------------------------
+
+**fixed**
+
+#. `#219 <https://github.com/pyexcel/pyexcel/issues/219>`_: book created from
+   dict no longer discards order.
+
 0.6.3 - 01.08.2020
 --------------------------------------------------------------------------------
 
diff --git a/CONTRIBUTORS.rst b/CONTRIBUTORS.rst
index 4dcd1db..c1f224c 100644
--- a/CONTRIBUTORS.rst
+++ b/CONTRIBUTORS.rst
@@ -1,4 +1,4 @@
-16 contributors
+17 contributors
 ================================================================================
 
 In alphabetical order:
@@ -8,6 +8,7 @@ In alphabetical order:
 * `Arunkumar Rajendran <https://github.com/arunkumar-ra>`_
 * `Ayan Banerjee <https://github.com/ayan-b>`_
 * `Chris Hill-Scott <https://github.com/quis>`_
+* `Craig Anderson <https://github.com/craiga>`_
 * `Daryl Yu <https://github.com/darylyu>`_
 * `J Harley <https://github.com/julzhk>`_
 * `Joel Nothman <https://github.com/jnothman>`_
diff --git a/pyexcel/book.py b/pyexcel/book.py
index ecae71f..e6128b1 100644
--- a/pyexcel/book.py
+++ b/pyexcel/book.py
@@ -56,10 +56,6 @@ class Book(BookMeta):
         if sheets is None:
             return
         keys = sheets.keys()
-        if not isinstance(sheets, compact.OrderedDict):
-            # if the end user does not care about the order
-            # we put alphatical order
-            keys = sorted(keys)
         for name in keys:
             value = sheets[name]
             if isinstance(value, Sheet):

Book created from a dict discards ordering
[Since Python 3.7, dictionaries preserve order](https://docs.python.org/3/whatsnew/3.7.html), so I'd expect the following code to pass:

```python
book = pyexcel.Book(
    {
        "Stuff": [["some", "data", "I", "can't", "parse"]],
        "Records": [["record_id"], ["a"], ["b"], ["c"]],
        "Quarters": [
            ["id", "quarter"],
            ["one", "2021Q1"],
            ["two", "2021Q2"],
        ],
    }
)
assert list(book.sheet_names()) == ["Stuff", "Records", "Quarters"]
```

Unfortunately it does not.

```
E       AssertionError: assert ['Quarters', ...rds', 'Stuff'] == ['Stuff', 'Re...', 'Quarters']
E         At index 0 diff: 'Quarters' != 'Stuff'
E         Full diff:
E         - ['Stuff', 'Records', 'Quarters']
E         + ['Quarters', 'Records', 'Stuff']
```

I'd expect `sheet_names` to return the sheet names in the same order as the source dict.
diff --git a/tests/test_book.py b/tests/test_book.py
index c1a1d52..c644671 100644
--- a/tests/test_book.py
+++ b/tests/test_book.py
@@ -19,3 +19,12 @@ def test_book_len():
 
     book = p.Book(book_dict)
     eq_(len(book.test.array), 1)
+
+
+def test_sheet_ordering():
+    test_data = [["a", "b"]]
+
+    book_dict = {"first": test_data, "middle": test_data, "last": test_data}
+
+    book = p.Book(book_dict)
+    eq_(book.sheet_names(), ["first", "middle", "last"])

pip install -e .
parse_log_pytest
requirements.txt
nose nose-cov pytest
3.8
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
cov-core==1.15.0
coverage==7.6.1
exceptiongroup==1.2.2
iniconfig==2.1.0
lml==0.2.0
nose==1.3.7
nose-cov==1.6
packaging==24.2
pluggy==1.5.0
-e git+https://github.com/pyexcel/pyexcel.git@c839be364c2de16d594d970486ab8d193c2e10f6#egg=pyexcel
pyexcel-io==0.6.7
pytest==8.3.5
texttable==1.7.0
tomli==2.2.1

name: pyexcel
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
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - 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=3.0.16=h5eee18b_0
  - pip=24.2=py38h06a4308_0
  - python=3.8.20=he870216_0
  - readline=8.2=h5eee18b_0
  - setuptools=75.1.0=py38h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.44.0=py38h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - cov-core==1.15.0
      - coverage==7.6.1
      - exceptiongroup==1.2.2
      - iniconfig==2.1.0
      - lml==0.2.0
      - nose==1.3.7
      - nose-cov==1.6
      - packaging==24.2
      - pluggy==1.5.0
      - pyexcel-io==0.6.7
      - pytest==8.3.5
      - texttable==1.7.0
      - tomli==2.2.1
prefix: /opt/conda/envs/pyexcel

tests/test_book.py::test_sheet_ordering
tests/test_book.py::test_a_dictionary_of_sheet tests/test_book.py::test_book_len
CHANGELOG.rst CONTRIBUTORS.rst pyexcel/book.py
CHANGELOG.rst CONTRIBUTORS.rst pyexcel/book.py