diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index effbfb1..16b9fd9 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -103,11 +103,11 @@
 
     <release version="1.9.4" date="2019-08-13" description="The primary reason for this release is a bugfix for
 CVE-2014-0114. More specifically, our goal with BEANUTILS-520
-is to set the default behaviour of the BeanUtilsBean
+is to set the default behavior of the BeanUtilsBean
 to not allow class level access. The goal in doing this now
-is to bring 1.9.X into alignment with the same behaviour
+is to bring 1.9.X into alignment with the same behavior
 of the 2.X version line in regards to security.
-If one would like to opt out of the default behaviour, one could follow the
+If one would like to opt out of the default behavior, one could follow the
 example set out in the test class available in
 src/test/java/org/apache/commons/beanutils/bugs/Jira520TestCase.java.">
       <action issue="BEANUTILS-520" dev="chtompki" type="fix" due-to="Melloware">
@@ -417,7 +417,7 @@
         Beanutils's describe() method cannot determine reader methods for anonymous class.
       </action>
       <action dev="rdonkin" type="fix" issue="BEANUTILS-158">
-        Added warning about describe behaviour to the javadocs.
+        Added warning about describe behavior to the javadocs.
       </action>
       <action dev="niallp" type="fix" issue="BEANUTILS-249" due-to="Brad">
         BeanUtilsBean's setProperty() does not convert objects using custom converters properly.
@@ -481,7 +481,7 @@
         Create new methods getPropertyOfMapBean and setPropertyOfMapBean that the existing
         setNestedProperty and getNestedProperty methods now call when they discover the bean
         they are accessing implements Map. This makes it much easier for users to subclass
-        and customise this behaviour of PropertyUtilsBean, eg in order to restore pre-1.5 behaviour.
+        and customise this behavior of PropertyUtilsBean, eg in order to restore pre-1.5 behavior.
         This patch also causes an exception to be thrown when the propertyName passed to
         getPropertyOfMapBean or setPropertyOfMapBean has MAPPED_DELIM or INDEXED_DELIM chars in
         it. This never worked as expected before (the whole string was treated literally as the
diff --git a/src/main/java/org/apache/commons/beanutils2/MethodUtils.java b/src/main/java/org/apache/commons/beanutils2/MethodUtils.java
index 12218f2..2df184b 100644
--- a/src/main/java/org/apache/commons/beanutils2/MethodUtils.java
+++ b/src/main/java/org/apache/commons/beanutils2/MethodUtils.java
@@ -1158,7 +1158,7 @@
 
         if (parameterType.isPrimitive()) {
             // this method does *not* do widening - you must specify exactly
-            // is this the right behaviour?
+            // is this the right behavior?
             final Class<?> parameterWrapperClazz = getPrimitiveWrapper(parameterType);
             if (parameterWrapperClazz != null) {
                 return parameterWrapperClazz.equals(parameterization);
diff --git a/src/main/java/org/apache/commons/beanutils2/locale/LocaleConvertUtilsBean.java b/src/main/java/org/apache/commons/beanutils2/locale/LocaleConvertUtilsBean.java
index 0d2497a..b59b31c 100644
--- a/src/main/java/org/apache/commons/beanutils2/locale/LocaleConvertUtilsBean.java
+++ b/src/main/java/org/apache/commons/beanutils2/locale/LocaleConvertUtilsBean.java
@@ -483,7 +483,7 @@
         converter.put(String.class, new StringLocaleConverter(locale, applyLocalized));
 
         // conversion format patterns of java.sql.* types should correspond to default
-        // behaviour of toString and valueOf methods of these classes
+        // behavior of toString and valueOf methods of these classes
         converter.put(java.sql.Date.class, new SqlDateLocaleConverter(locale, "yyyy-MM-dd"));
         converter.put(java.sql.Time.class, new SqlTimeLocaleConverter(locale, "HH:mm:ss"));
         converter.put( java.sql.Timestamp.class,
diff --git a/src/site/xdoc/index.xml b/src/site/xdoc/index.xml
index c5a77b9..8b5d984 100644
--- a/src/site/xdoc/index.xml
+++ b/src/site/xdoc/index.xml
@@ -149,7 +149,7 @@
 }
 
 /**
-* Example usage to restore 1.9.3 behaviour
+* Example usage to restore 1.9.3 behavior
 */
 public void testAllowAccessToClassProperty() throws Exception {
   final BeanUtilsBean bub = new BeanUtilsBean();
diff --git a/src/test/java/org/apache/commons/beanutils2/BeanificationTestCase.java b/src/test/java/org/apache/commons/beanutils2/BeanificationTestCase.java
index 166f77c..0b3a71a 100644
--- a/src/test/java/org/apache/commons/beanutils2/BeanificationTestCase.java
+++ b/src/test/java/org/apache/commons/beanutils2/BeanificationTestCase.java
@@ -127,7 +127,7 @@
 
     /** Tests whether classloaders and beans are released from memory by the map used by beanutils */
     public void testMemoryLeak2() throws Exception {
-        // tests when the map used by beanutils has the right behaviour
+        // tests when the map used by beanutils has the right behavior
 
         if (BeanUtilsTestCase.isPre14JVM()) {
             System.out.println("WARNING: CANNOT TEST MEMORY LEAK ON PRE1.4 JVM");
diff --git a/src/test/java/org/apache/commons/beanutils2/PropertyUtilsTestCase.java b/src/test/java/org/apache/commons/beanutils2/PropertyUtilsTestCase.java
index b581f12..0719278 100644
--- a/src/test/java/org/apache/commons/beanutils2/PropertyUtilsTestCase.java
+++ b/src/test/java/org/apache/commons/beanutils2/PropertyUtilsTestCase.java
@@ -4249,9 +4249,9 @@
      * This tests to see that classes that implement Map always have their
      * custom properties ignored.
      * <p>
-     * Note that this behaviour has changed several times over past releases
+     * Note that this behavior has changed several times over past releases
      * of beanutils, breaking backwards compatibility each time. Here's hoping
-     * that the current 1.7.1 release is the last time this behaviour changes!
+     * that the current 1.7.1 release is the last time this behavior changes!
      */
     public void testMapExtensionDefault() throws Exception {
         final ExtendMapBean bean = new ExtendMapBean();
@@ -4284,7 +4284,7 @@
 
     /**
      * This tests to see that it is possible to subclass PropertyUtilsBean
-     * and change the behaviour of setNestedProperty/getNestedProperty when
+     * and change the behavior of setNestedProperty/getNestedProperty when
      * dealing with objects that implement Map.
      */
     public void testMapExtensionCustom() throws Exception {
diff --git a/src/test/java/org/apache/commons/beanutils2/PropsFirstPropertyUtilsBean.java b/src/test/java/org/apache/commons/beanutils2/PropsFirstPropertyUtilsBean.java
index f7fd6cf..76284f0 100644
--- a/src/test/java/org/apache/commons/beanutils2/PropsFirstPropertyUtilsBean.java
+++ b/src/test/java/org/apache/commons/beanutils2/PropsFirstPropertyUtilsBean.java
@@ -21,7 +21,7 @@
 import java.util.Map;
 
 /**
- * A PropertyUtilsBean which customises the behaviour of the
+ * A PropertyUtilsBean which customises the behavior of the
  * setNestedProperty and getNestedProperty methods to look for
  * simple properties in preference to map entries.
  *
diff --git a/src/test/java/org/apache/commons/beanutils2/bugs/Jira492TestCase.java b/src/test/java/org/apache/commons/beanutils2/bugs/Jira492TestCase.java
index cdcef9a..0a43a35 100644
--- a/src/test/java/org/apache/commons/beanutils2/bugs/Jira492TestCase.java
+++ b/src/test/java/org/apache/commons/beanutils2/bugs/Jira492TestCase.java
@@ -100,7 +100,7 @@
     @Test
     public void getPropertyType() throws Exception {
         if (supportsIndexedLists()) {
-            // legacy behaviour (< Java 8)
+            // legacy behavior (< Java 8)
             assertEquals(String.class, propertyUtils.getPropertyType(bean, "someList[0]"));
         } else {
             assertEquals(List.class, propertyUtils.getPropertyType(bean, "someList"));
diff --git a/src/test/java/org/apache/commons/beanutils2/locale/LocaleBeanificationTestCase.java b/src/test/java/org/apache/commons/beanutils2/locale/LocaleBeanificationTestCase.java
index d0977cf..a2d6e12 100644
--- a/src/test/java/org/apache/commons/beanutils2/locale/LocaleBeanificationTestCase.java
+++ b/src/test/java/org/apache/commons/beanutils2/locale/LocaleBeanificationTestCase.java
@@ -133,7 +133,7 @@
 
     /** Tests whether classloaders and beans are released from memory by the map used by beanutils */
     public void testMemoryLeak2() throws Exception {
-        // tests when the map used by beanutils has the right behaviour
+        // tests when the map used by beanutils has the right behavior
 
         if (BeanUtilsTestCase.isPre14JVM()) {
             System.out.println("WARNING: CANNOT TEST MEMORY LEAK ON PRE1.4 JVM");
