diff --git a/doc/runtime.rst b/doc/runtime.rst
index ce070a9feca0d98803079b8eda95447e033ebe19..33cb220264d3c10264d4e82ab3971c9aea76a2f3 100644
--- a/doc/runtime.rst
+++ b/doc/runtime.rst
@@ -124,7 +124,7 @@ Platforms, Devices and Contexts
 
     Two instances of this class may be compared using *=="* and *"!="*.
 
-.. class:: Context(devices=None, properties=None, dev_type=None, cache_dir=None)
+.. class:: Context(devices=None, properties=None, dev_type=None)
 
     Create a new context. *properties* is a list of key-value
     tuples, where each key must be one of :class:`context_properties`.
@@ -134,9 +134,6 @@ Platforms, Devices and Contexts
     If neither is specified, a context with a *dev_type* of
     :attr:`device_type.DEFAULT` is created.
 
-    If *cache_dir* is not `None` - it will be used as default *cache_dir*
-    for all its' :class:`Program` instances builds (see also :meth:`Program.build`).
-
     .. note::
 
         Calling the constructor with no arguments will fail for recent
@@ -657,17 +654,12 @@ Programs and Kernels
 
         See :class:`program_build_info` for values of *param*.
 
-    .. method:: build(options=[], devices=None, cache_dir=None)
+    .. method:: build(options=[], devices=None)
 
         *options* is a string of compiler flags.
         Returns *self*.
 
-        If *cache_dir* is not None - built binaries are cached in an on-disk cache
-        with given path.
-        If passed *cache_dir* is None, but context of this program was created with
-        not-None cache_dir - it will be used as cache directory.
-        If passed *cache_dir* is None and context was created with None cache_dir:
-        built binaries will be cached in an on-disk cache called
+        By default, built binaries are cached in an on-disk cache called
         :file:`pyopencl-compiler-cache-vN-uidNAME-pyVERSION` in the directory
         returned by :func:`tempfile.gettempdir`.  By setting the environment
         variable :envvar:`PYOPENCL_NO_CACHE` to any non-empty value, this
diff --git a/pyopencl/__init__.py b/pyopencl/__init__.py
index 5b84393df9da5a4b9da07b3d417e67766b30f903..0c3df5f952567d087a4b531ed0f17b3d69a14186 100644
--- a/pyopencl/__init__.py
+++ b/pyopencl/__init__.py
@@ -347,9 +347,6 @@ class Program(object):
         elif isinstance(options, six.text_type):
             options = [options.encode("utf8")]
 
-        if cache_dir is None:
-            cache_dir = self._context.cache_dir
-
         options = (options
                 + _DEFAULT_BUILD_OPTIONS
                 + _DEFAULT_INCLUDE_OPTIONS
@@ -1211,7 +1208,7 @@ _add_functionality()
 
 # {{{ convenience
 
-def create_some_context(interactive=None, answers=None, cache_dir=None):
+def create_some_context(interactive=None, answers=None):
     import os
     if answers is None:
         if "PYOPENCL_CTX" in os.environ:
@@ -1222,7 +1219,7 @@ def create_some_context(interactive=None, answers=None, cache_dir=None):
             from pyopencl.tools import get_test_platforms_and_devices
             for plat, devs in get_test_platforms_and_devices():
                 for dev in devs:
-                    return Context([dev], cache_dir=cache_dir)
+                    return Context([dev])
 
     if answers is not None:
         pre_provided_answers = answers
@@ -1337,7 +1334,7 @@ def create_some_context(interactive=None, answers=None, cache_dir=None):
         raise RuntimeError("not all provided choices were used by "
                 "create_some_context. (left over: '%s')" % ":".join(answers))
 
-    return Context(devices, cache_dir=cache_dir)
+    return Context(devices)
 
 _csc = create_some_context
 
diff --git a/pyopencl/cffi_cl.py b/pyopencl/cffi_cl.py
index 2e6caa6109dfde15b788f34a87a1b1f06b1bd200..ecb42397eb415296ce2865c82e92be4f009660ac 100644
--- a/pyopencl/cffi_cl.py
+++ b/pyopencl/cffi_cl.py
@@ -641,7 +641,7 @@ def _parse_context_properties(properties):
 class Context(_Common):
     _id = 'context'
 
-    def __init__(self, devices=None, properties=None, dev_type=None, cache_dir=None):
+    def __init__(self, devices=None, properties=None, dev_type=None):
         c_props = _parse_context_properties(properties)
         status_code = _ffi.new('cl_int*')
 
@@ -665,7 +665,6 @@ class Context(_Common):
                                                         dev_type))
 
         self.ptr = _ctx[0]
-        self.cache_dir = cache_dir
 
 # }}}