diff --git a/performance.html b/performance.html
index 35b3948376ca4b4142523b88f8c123dfb782d663_cGVyZm9ybWFuY2UuaHRtbA==..a63ae0daebb6ac373ba9e6a2c1fff6a4d7896368_cGVyZm9ybWFuY2UuaHRtbA== 100644
--- a/performance.html
+++ b/performance.html
@@ -341,7 +341,7 @@
 for JIT optimization.  If the extension module is
 both performance-critical and an interface to some C library, then it
 might be worthwhile to consider rewriting it as a pure Python version
-that uses something like <tt class="docutils literal">ctypes</tt> for the interface.</li>
+that uses <a class="reference external" href="http://cffi.readthedocs.org/">CFFI</a> for the interface.</li>
 <li><strong>Missing RPython modules</strong>: A few modules of the standard library
 (like <tt class="docutils literal">csv</tt> and <tt class="docutils literal">cPickle</tt>) are written in C in CPython, but written
 natively in pure Python in PyPy.  Sometimes the JIT is able to do a
diff --git a/source/performance.txt b/source/performance.txt
index 35b3948376ca4b4142523b88f8c123dfb782d663_c291cmNlL3BlcmZvcm1hbmNlLnR4dA==..a63ae0daebb6ac373ba9e6a2c1fff6a4d7896368_c291cmNlL3BlcmZvcm1hbmNlLnR4dA== 100644
--- a/source/performance.txt
+++ b/source/performance.txt
@@ -329,7 +329,7 @@
   for JIT optimization.  If the extension module is
   both performance-critical and an interface to some C library, then it
   might be worthwhile to consider rewriting it as a pure Python version
-  that uses something like ``ctypes`` for the interface.
+  that uses CFFI_ for the interface.
 
 * **Missing RPython modules**: A few modules of the standard library
   (like ``csv`` and ``cPickle``) are written in C in CPython, but written