diff --git a/doc/src/Section_errors.txt b/doc/src/Section_errors.txt
index 408c01d52cf2dcbcee7fb1242dc01b74e2752734..f5829f92fb35119d352a1ddd5305b2471e17b9d5 100644
--- a/doc/src/Section_errors.txt
+++ b/doc/src/Section_errors.txt
@@ -7886,8 +7886,8 @@ keyword to allow for additional bonds to be formed :dd
 
 {New bond exceeded special list size in fix bond/create} :dt
 
-See the "special_bonds extra" command
-(or the "read_data extra/special/per/atom" command)
+See the "read_data extra/special/per/atom" command
+(or the "create_box extra/special/per/atom" command)
 for info on how to leave space in the special bonds
 list to allow for additional bonds to be formed. :dd
 
@@ -9666,8 +9666,8 @@ you are running. :dd
 
 {Special list size exceeded in fix bond/create} :dt
 
-See the special_bonds extra command
-(or the read_data extra/special/per/atom command)
+See the "read_data extra/special/per/atom" command
+(or the "create_box extra/special/per/atom" command)
 for info on how to leave space in the special bonds
 list to allow for additional bonds to be formed. :dd
 
diff --git a/doc/src/fix_bond_create.txt b/doc/src/fix_bond_create.txt
index a44c3103ddd10489fe639b85e42168d5749c57c3..c0045ac0f081e4df37c9fd6cf201d43238aea88f 100644
--- a/doc/src/fix_bond_create.txt
+++ b/doc/src/fix_bond_create.txt
@@ -150,10 +150,9 @@ atoms.  Note that adding a single bond always adds a new 1st neighbor
 but may also induce *many* new 2nd and 3rd neighbors, depending on the
 molecular topology of your system.  The "extra special per atom"
 parameter must typically be set to allow for the new maximum total
-size (1st + 2nd + 3rd neighbors) of this per-atom list.  There are 3
+size (1st + 2nd + 3rd neighbors) of this per-atom list.  There are 2
 ways to do this.  See the "read_data"_read_data.html or
-"create_box"_create_box.html or "special_bonds extra" commands for
-details.
+"create_box"_create_box.html commands for details.
 
 NOTE: Even if you do not use the {atype}, {dtype}, or {itype}
 keywords, the list of topological neighbors is updated for atoms
diff --git a/doc/src/special_bonds.txt b/doc/src/special_bonds.txt
index 6a661015bda73c2837da23095afe3c567f37d330..1021c4856b02cc7cb91901d429eb8c1fc2ca22c4 100644
--- a/doc/src/special_bonds.txt
+++ b/doc/src/special_bonds.txt
@@ -25,9 +25,7 @@ keyword = {amber} or {charmm} or {dreiding} or {fene} or {lj/coul} or {lj} or {c
   {coul} values = w1,w2,w3
     w1,w2,w3 = weights (0.0 to 1.0) on pairwise Coulombic interactions
   {angle} value = {yes} or {no}
-  {dihedral} value = {yes} or {no}
-  {extra} value = N
-    N = number of extra 1-2,1-3,1-4 interactions to save space for :pre
+  {dihedral} value = {yes} or {no} :pre
 :ule
 
 Examples:
@@ -36,8 +34,7 @@ special_bonds amber
 special_bonds charmm
 special_bonds fene dihedral no
 special_bonds lj/coul 0.0 0.0 0.5 angle yes dihedral yes
-special_bonds lj 0.0 0.0 0.5 coul 0.0 0.0 0.0 dihedral yes
-special_bonds lj/coul 0 1 1 extra 2 :pre
+special_bonds lj 0.0 0.0 0.5 coul 0.0 0.0 0.0 dihedral yes :pre
 
 [Description:]
 
@@ -178,14 +175,6 @@ interaction between atoms 2 and 5 will be unaffected (full weighting
 of 1.0).  If the {dihedral} keyword is specified as {no} which is the
 default, then the 2,5 interaction will also be weighted by 0.5.
 
-The {extra} keyword can be used when additional bonds will be created
-during a simulation run, e.g. by the "fix
-bond/create"_fix_bond_create.html command.  It can also be used if
-molecules will be added to the system, e.g. via the "fix
-deposit"_fix_deposit.html, or "fix pour"_fix_pour.html commands, which
-will have atoms with more special neighbors than any atom in the
-current system has.
-
 :line
 
 NOTE: LAMMPS stores and maintains a data structure with a list of the
@@ -194,8 +183,9 @@ the system).  If new bonds are created (or molecules added containing
 atoms with more special neighbors), the size of this list needs to
 grow.  Note that adding a single bond always adds a new 1st neighbor
 but may also induce *many* new 2nd and 3rd neighbors, depending on the
-molecular topology of your system.  Using the {extra} keyword leaves
-empty space in the list for this N additional 1st, 2nd, or 3rd
+molecular topology of your system.  Using the {extra/special/per/atom}
+keyword to either "read_data"_read_data.html or "create_box"_create_box.html
+reserves empty space in the list for this N additional 1st, 2nd, or 3rd
 neighbors to be added.  If you do not do this, you may get an error
 when bonds (or molecules) are added.
 
@@ -203,8 +193,7 @@ when bonds (or molecules) are added.
 
 NOTE: If you reuse this command in an input script, you should set all
 the options you need each time.  This command cannot be used a 2nd
-time incrementally, e.g. to add some extra storage locations via the
-{extra} keyword.  E.g. these two commands:
+time incrementally.  E.g. these two commands:
 
 special_bonds lj 0.0 1.0 1.0
 special_bonds coul 0.0 0.0 1.0
@@ -221,25 +210,6 @@ Coul: coul 0.0 0.0 1.0
 because the LJ settings are reset to their default values
 each time the command is issued.
 
-Likewise
-
-special_bonds amber
-special_bonds extra 2 :pre
-
-is not the same as this single command:
-
-special_bonds amber extra 2 :pre
-
-since in the former case, the 2nd command will reset all the LJ and
-Coulombic weights to 0.0 (the default).
-
-One exception to this rule is the {extra} option itself.  It is not
-reset to its default value of 0 each time the special_bonds command is
-invoked.  This is because it can also be set by the
-"read_data"_read_data.html and "create_box"_create_box.html commands,
-so this command will not override those settings unless you explicitly
-use {extra} as an option.
-
 [Restrictions:] none
 
 [Related commands:]
diff --git a/doc/src/tutorial_drude.txt b/doc/src/tutorial_drude.txt
index b9a167b80412e450c8e5f56a412603cfee97aeb1..f6e7eed40bd84cde46e30213c0a14c22244eae86 100644
--- a/doc/src/tutorial_drude.txt
+++ b/doc/src/tutorial_drude.txt
@@ -176,12 +176,13 @@ By recognizing the fix {drude}, LAMMPS will find and store matching
 DC-DP pairs and will treat DP as equivalent to their DC in the
 {special bonds} relations.  It may be necessary to extend the space
 for storing such special relations.  In this case extra space should
-be reserved by using the {extra} keyword of the {special_bonds}
+be reserved by using the {extra/special/per/atom} keyword of either
+the "read_data"_read_data.html or "create_box"_create_box.html
 command.  With our phenol, there is 1 more special neighbor for which
 space is required.  Otherwise LAMMPS crashes and gives the required
 value.
 
-special_bonds lj/coul 0.0 0.0 0.5 extra 1 :pre
+read_data data-p.lmp extra/special/per/atom 1 :pre
 
 Let us assume we want to run a simple NVT simulation at 300 K.  Note
 that Drude oscillators need to be thermalized at a low temperature in
diff --git a/src/force.cpp b/src/force.cpp
index 33e66304067d8c1257d486ed4df44bdf8c80b445..060cae10eb4f9c85e6cfdec200ce069fa10c850f 100644
--- a/src/force.cpp
+++ b/src/force.cpp
@@ -833,10 +833,6 @@ void Force::set_special(int narg, char **arg)
       else if (strcmp(arg[iarg+1],"yes") == 0) special_dihedral = 1;
       else error->all(FLERR,"Illegal special_bonds command");
       iarg += 2;
-    } else if (strcmp(arg[iarg],"extra") == 0) {
-      if (iarg+2 > narg) error->all(FLERR,"Illegal special_bonds command");
-      special_extra = atoi(arg[iarg+1]);
-      iarg += 2;
     } else error->all(FLERR,"Illegal special_bonds command");
   }
 
@@ -844,8 +840,6 @@ void Force::set_special(int narg, char **arg)
     if (special_lj[i] < 0.0 || special_lj[i] > 1.0 ||
         special_coul[i] < 0.0 || special_coul[i] > 1.0)
       error->all(FLERR,"Illegal special_bonds command");
-
-  if (special_extra < 0) error->all(FLERR,"Illegal special_bonds command");
 }
 
 /* ----------------------------------------------------------------------
diff --git a/src/input.cpp b/src/input.cpp
index 570560373a6b219d6c16f090b45f40cf7997ac4a..7d11b8741b976ba47678b8742ded9f1e06ef8bdd 100644
--- a/src/input.cpp
+++ b/src/input.cpp
@@ -1867,7 +1867,6 @@ void Input::special_bonds()
   double coul3 = force->special_coul[3];
   int angle = force->special_angle;
   int dihedral = force->special_dihedral;
-  int extra = force->special_extra;
 
   force->set_special(narg,arg);
 
@@ -1877,8 +1876,7 @@ void Input::special_bonds()
     if (lj2 != force->special_lj[2] || lj3 != force->special_lj[3] ||
         coul2 != force->special_coul[2] || coul3 != force->special_coul[3] ||
         angle != force->special_angle ||
-        dihedral != force->special_dihedral ||
-        extra != force->special_extra) {
+        dihedral != force->special_dihedral) {
       Special special(lmp);
       special.build();
     }