# HG changeset patch
# User Bob Ippolito <bob@redivi.com>
# Date 1408391746 25200
#      Mon Aug 18 12:55:46 2014 -0700
# Node ID fc047df63b20368a11b1b086ee4c5d64ae173835
# Parent  f9d5066027386e7a5db53bfb986fb6cdab4f81c0
documentation about key limitations in JSON per #103

diff --git a/CHANGES.txt b/CHANGES.txt
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,3 +1,8 @@
+Version 3.6.3 released 2014-08-18
+
+* Documentation updates
+  https://github.com/simplejson/simplejson/issues/103
+
 Version 3.6.2 released 2014-08-09
 
 * Documentation updates
diff --git a/conf.py b/conf.py
--- a/conf.py
+++ b/conf.py
@@ -44,7 +44,7 @@
 # The short X.Y version.
 version = '3.6'
 # The full version, including alpha/beta/rc tags.
-release = '3.6.2'
+release = '3.6.3'
 
 # There are two options for replacing |today|: either, you set today to some
 # non-false value, then it is used:
diff --git a/index.rst b/index.rst
--- a/index.rst
+++ b/index.rst
@@ -553,6 +553,15 @@
    | None              | null          |
    +-------------------+---------------+
 
+   .. note:: The JSON format only permits strings to be used as object
+      keys, thus any Python dicts to be encoded should only have string keys.
+      For backwards compatibility, several other types are automatically
+      coerced to strings: int, long, float, Decimal, bool, and None.
+      It is error-prone to rely on this behavior, so avoid it when possible.
+      Dictionaries with other types used as keys should be pre-processed or
+      wrapped in another type with an appropriate `for_json` method to
+      transform the keys during encoding.
+
    It also understands ``NaN``, ``Infinity``, and ``-Infinity`` as their
    corresponding ``float`` values, which is outside the JSON spec.
 
@@ -570,8 +579,8 @@
         or *for_json* kwarg. This is faster and more portable than subclassing.
 
    If *skipkeys* is false (the default), then it is a :exc:`TypeError` to
-   attempt encoding of keys that are not str, int, long, float or None.  If
-   *skipkeys* is true, such items are simply skipped.
+   attempt encoding of keys that are not str, int, long, float, Decimal, bool,
+   or None. If *skipkeys* is true, such items are simply skipped.
 
    If *ensure_ascii* is true (the default), the output is guaranteed to be
    :class:`str` objects with all incoming unicode characters escaped.  If
@@ -814,7 +823,7 @@
 terms of conversion between Python objects and
 :class:`Unicode strings <str>`, and thus does not otherwise directly address
 the issue of character encodings.
- 
+
 The RFC prohibits adding a byte order mark (BOM) to the start of a JSON text,
 and this module's serializer does not add a BOM to its output.
 The RFC permits, but does not require, JSON deserializers to ignore an initial
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -11,7 +11,7 @@
     DistutilsPlatformError
 
 IS_PYPY = hasattr(sys, 'pypy_translation_info')
-VERSION = '3.6.2'
+VERSION = '3.6.3'
 DESCRIPTION = "Simple, fast, extensible JSON encoder/decoder for Python"
 
 with open('README.rst', 'r') as f:
diff --git a/simplejson/__init__.py b/simplejson/__init__.py
--- a/simplejson/__init__.py
+++ b/simplejson/__init__.py
@@ -98,7 +98,7 @@
     Expecting property name: line 1 column 3 (char 2)
 """
 from __future__ import absolute_import
-__version__ = '3.6.2'
+__version__ = '3.6.3'
 __all__ = [
     'dump', 'dumps', 'load', 'loads',
     'JSONDecoder', 'JSONDecodeError', 'JSONEncoder',