diff --git a/docs/advanced.rst b/docs/advanced.rst
index 70561d7..4caacf9 100644
--- a/docs/advanced.rst
+++ b/docs/advanced.rst
@@ -45,7 +45,7 @@
 
     #include <pybind11/operators.h>
 
-    PYBIND_PLUGIN(example) {
+    PYBIND11_PLUGIN(example) {
         py::module m("example", "pybind11 example plugin");
 
         py::class_<Vector2>(m, "Vector2")
@@ -127,7 +127,7 @@
 
     #include <pybind11/functional.h>
 
-    PYBIND_PLUGIN(example) {
+    PYBIND11_PLUGIN(example) {
         py::module m("example", "pybind11 example plugin");
 
         m.def("func_arg", &func_arg);
@@ -199,7 +199,7 @@
 
 .. code-block:: cpp
 
-    PYBIND_PLUGIN(example) {
+    PYBIND11_PLUGIN(example) {
         py::module m("example", "pybind11 example plugin");
 
         py::class_<Animal> animal(m, "Animal");
@@ -230,7 +230,7 @@
 
         /* Trampoline (need one for each virtual function) */
         std::string go(int n_times) {
-            PYBIND_OVERLOAD_PURE(
+            PYBIND11_OVERLOAD_PURE(
                 std::string, /* Return type */
                 Animal,      /* Parent class */
                 go,          /* Name of function */
@@ -239,15 +239,15 @@
         }
     };
 
-The macro :func:`PYBIND_OVERLOAD_PURE` should be used for pure virtual
-functions, and :func:`PYBIND_OVERLOAD` should be used for functions which have
+The macro :func:`PYBIND11_OVERLOAD_PURE` should be used for pure virtual
+functions, and :func:`PYBIND11_OVERLOAD` should be used for functions which have
 a default implementation. The binding code also needs a few minor adaptations
 (highlighted):
 
 .. code-block:: cpp
     :emphasize-lines: 4,6,7
 
-    PYBIND_PLUGIN(example) {
+    PYBIND11_PLUGIN(example) {
         py::module m("example", "pybind11 example plugin");
 
         py::class_<PyAnimal> animal(m, "Animal");
@@ -375,7 +375,7 @@
         Internal internal;
     };
 
-    PYBIND_PLUGIN(example) {
+    PYBIND11_PLUGIN(example) {
         py::module m("example", "pybind11 example plugin");
 
         py::class_<Example>(m, "Example")
@@ -441,7 +441,7 @@
 
 .. code-block:: cpp
 
-    PYBIND_DECLARE_HOLDER_TYPE(T, std::shared_ptr<T>);
+    PYBIND11_DECLARE_HOLDER_TYPE(T, std::shared_ptr<T>);
 
 .. seealso::
 
diff --git a/docs/basics.rst b/docs/basics.rst
index 3d281d6..c4db8f7 100644
--- a/docs/basics.rst
+++ b/docs/basics.rst
@@ -87,7 +87,7 @@
 
     namespace py = pybind11;
 
-    PYBIND_PLUGIN(example) {
+    PYBIND11_PLUGIN(example) {
         py::module m("example", "pybind11 example plugin");
 
         m.def("add", &add, "A function which adds two numbers");
@@ -95,7 +95,7 @@
         return m.ptr();
     }
 
-The :func:`PYBIND_PLUGIN` macro creates a function that will be called when an
+The :func:`PYBIND11_PLUGIN` macro creates a function that will be called when an
 ``import`` statement is issued from within Python. The next line creates a
 module named ``example`` (with the supplied docstring). The method
 :func:`module::def` generates binding code that exposes the
diff --git a/docs/classes.rst b/docs/classes.rst
index a7c75d8..db4dc42 100644
--- a/docs/classes.rst
+++ b/docs/classes.rst
@@ -27,7 +27,7 @@
 
     namespace py = pybind11;
 
-    PYBIND_PLUGIN(example) {
+    PYBIND11_PLUGIN(example) {
         py::module m("example", "pybind11 example plugin");
 
         py::class_<Pet>(m, "Pet")
diff --git a/docs/reference.rst b/docs/reference.rst
index 3a70822..16d2a8d 100644
--- a/docs/reference.rst
+++ b/docs/reference.rst
@@ -12,7 +12,7 @@
 Macros
 ======
 
-.. function:: PYBIND_PLUGIN(const char *name)
+.. function:: PYBIND11_PLUGIN(const char *name)
 
     This macro creates the entry point that will be invoked when the Python
     interpreter imports a plugin library. Please create a
@@ -21,7 +21,7 @@
 
     .. code-block:: cpp
 
-        PYBIND_PLUGIN(example) {
+        PYBIND11_PLUGIN(example) {
             pybind11::module m("example", "pybind11 example plugin");
             /// Set up bindings here
             return m.ptr();
