diff --git a/charmhelpers/core/hookenv.py b/charmhelpers/core/hookenv.py
index <HASH>..<HASH> 100644
--- a/charmhelpers/core/hookenv.py
+++ b/charmhelpers/core/hookenv.py
@@ -67,7 +67,7 @@ def cached(func):
     @wraps(func)
     def wrapper(*args, **kwargs):
         global cache
-        key = str((func, args, kwargs))
+        key = json.dumps((str(func), args, kwargs), sort_keys=True)
         try:
             return cache[key]
         except KeyError:
Ensure keys in cashed func args are sorted (#<I>)

Fixes #<I>

Supersedes #<I>