diff --git a/CMakeLists.txt b/CMakeLists.txt
index 697f7345d4bd44d84a5620a3c7c8ead200cb59ea..c9e650b26a096e85143aba9f847071d207d3e5c6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -210,10 +210,10 @@ option(WITH_INTERNATIONAL "Enable I18N (International fonts and text)" ON)
 
 option(WITH_PYTHON        "Enable Embedded Python API  (only disable for development)" ON)
 option(WITH_PYTHON_SECURITY "Disables execution of scripts within blend files by default" ON)
-mark_as_advanced(WITH_PYTHON)  # dont want people disabling this unless they really know what they are doing.
+mark_as_advanced(WITH_PYTHON)  # don't want people disabling this unless they really know what they are doing.
 mark_as_advanced(WITH_PYTHON_SECURITY)  # some distributions see this as a security issue, rather than have them patch it, make a build option.
 
-option(WITH_PYTHON_SAFETY "Enable internal API error checking to track invalid data to prevent crash on access (at the expense of some effeciency, only enable for development)." OFF)
+option(WITH_PYTHON_SAFETY "Enable internal API error checking to track invalid data to prevent crash on access (at the expense of some efficiency, only enable for development)." OFF)
 mark_as_advanced(WITH_PYTHON_SAFETY)
 option(WITH_PYTHON_MODULE "Enable building as a python module which runs without a user interface, like running regular blender in background mode (experimental, only enable for development), installs to PYTHON_SITE_PACKAGES (or CMAKE_INSTALL_PREFIX if WITH_INSTALL_PORTABLE is enabled)." OFF)
 if(APPLE)
@@ -225,8 +225,8 @@ if(${CMAKE_VERSION} VERSION_LESS 2.8.8)
 	# add_library OBJECT arg unsupported
 	set(WITH_BUILDINFO OFF)
 endif()
-set(BUILDINFO_OVERRIDE_DATE "" CACHE STRING "Use instead of the current date for reproducable builds (empty string disables this option)")
-set(BUILDINFO_OVERRIDE_TIME "" CACHE STRING "Use instead of the current time for reproducable builds (empty string disables this option)")
+set(BUILDINFO_OVERRIDE_DATE "" CACHE STRING "Use instead of the current date for reproducible builds (empty string disables this option)")
+set(BUILDINFO_OVERRIDE_TIME "" CACHE STRING "Use instead of the current time for reproducible builds (empty string disables this option)")
 set(CPACK_OVERRIDE_PACKAGENAME "" CACHE STRING "Use instead of the standard packagename (empty string disables this option)")
 mark_as_advanced(CPACK_OVERRIDE_PACKAGENAME)
 mark_as_advanced(BUILDINFO_OVERRIDE_DATE)
@@ -891,7 +891,7 @@ if(WITH_X11)
 	endif()
 
 	if(WITH_X11_XF86VMODE)
-		# XXX, why dont cmake make this available?
+		# XXX, why doesn't cmake make this available?
 		find_library(X11_Xxf86vmode_LIB Xxf86vm   ${X11_LIB_SEARCH_PATH})
 		mark_as_advanced(X11_Xxf86vmode_LIB)
 		if(X11_Xxf86vmode_LIB)
@@ -988,7 +988,7 @@ endif()
 if(SUPPORT_SSE2_BUILD)
 	set(PLATFORM_CFLAGS " ${PLATFORM_CFLAGS} ${COMPILER_SSE2_FLAG}")
 	add_definitions(-D__SSE2__)
-	if(NOT SUPPORT_SSE_BUILD) # dont double up
+	if(NOT SUPPORT_SSE_BUILD) # don't double up
 		add_definitions(-D__MMX__)
 	endif()
 endif()
@@ -1001,7 +1001,7 @@ if(MSVC)
 
 # OSX-Note: as we do cross-compiling with specific set architecture,
 # endianess-detection and auto-setting is counterproductive
-# so we just set endianess according CMAKE_OSX_ARCHITECTURES
+# so we just set endianness according CMAKE_OSX_ARCHITECTURES
 
 elseif(CMAKE_OSX_ARCHITECTURES MATCHES i386 OR CMAKE_OSX_ARCHITECTURES MATCHES x86_64)
 	add_definitions(-D__LITTLE_ENDIAN__)
diff --git a/doc/blender_file_format/BlendFileDnaExporter_25.py b/doc/blender_file_format/BlendFileDnaExporter_25.py
index a9da79f04d8fa0cb6f14c7b48c120216de9cb2f6..54a3bd56eef53b90194c3bb6414dad3c2606d9cd 100755
--- a/doc/blender_file_format/BlendFileDnaExporter_25.py
+++ b/doc/blender_file_format/BlendFileDnaExporter_25.py
@@ -383,7 +383,7 @@ def usage():
     print("Options:")
     print("\t--dna-keep-blend:      doesn't delete the produced blend file DNA export to html")
     print("\t--dna-debug:           sets the logging level to DEBUG (lots of additional info)")
-    print("\t--dna-versioned        saves version informations in the html and blend filenames")
+    print("\t--dna-versioned        saves version information in the html and blend filenames")
     print("\t--dna-overwrite-css    overwrite dna.css, useful when modifying css in the script")
     print("Examples:")
     print("\tdefault:       % blender2.5 --background -noaudio --python BlendFileDnaExporter_25.py")
diff --git a/doc/blender_file_format/README b/doc/blender_file_format/README
index f28d4b3f6b6c8af20909a9ba331672fd92f429e0..531756eb34a69909d07b070924f4e40eba437a61 100644
--- a/doc/blender_file_format/README
+++ b/doc/blender_file_format/README
@@ -8,7 +8,7 @@ where "blender2.5" is your blender executable or a symlink to it.
 This creates a temporary dna.blend to be inspected and it produces two new files:
 
 * dna.html: the list of all the structures saved in a blend file with the blender2.5
-            executable you have used. If you enable build informations when you build blender,
+            executable you have used. If you enable build information when you build blender,
             the dna.html file will also show which svn revision the html refers to.
 * dna.css:  the css for the html above
 
@@ -20,7 +20,7 @@ Usage:
 Options:
         --dna-keep-blend:      doesn't delete the produced blend file DNA export to html
         --dna-debug:           sets the logging level to DEBUG (lots of additional info)
-        --dna-versioned        saves version informations in the html and blend filenames
+        --dna-versioned        saves version information in the html and blend filenames
         --dna-overwrite-css    overwrite dna.css, useful when modifying css in the script
 Examples:
         default:       % blender2.5 --background -noaudio --python BlendFileDnaExporter_25.py
diff --git a/doc/blender_file_format/mystery_of_the_blend.html b/doc/blender_file_format/mystery_of_the_blend.html
index 599cb4a05bc976f4e77d7f9b5b6362b5f4a1c5df..74c59cd041453c2e368151fefbd3308fc4ddef9f 100644
--- a/doc/blender_file_format/mystery_of_the_blend.html
+++ b/doc/blender_file_format/mystery_of_the_blend.html
@@ -204,7 +204,7 @@ Nowadays, little-endian is the most commonly used.
 <a name="example-endianess"></a>
 <div class="box">
 <p onclick="location.href='#example-endianess'" class="box-title">
-Endianess Example
+Endianness Example
 </p>
 <p>
 Writing the integer <code class="evidence">0x4A3B2C1Dh</code>, will be ordered:
@@ -826,7 +826,7 @@ Note
 </p>
 <p>
 A file-block containing a list refers to the DNA structure and has a count larger
-than 1. For example Vertexes and Faces are stored in this way.
+than 1. For example Vertices and Faces are stored in this way.
 </p>
 </div>
 
diff --git a/doc/guides/blender-guardedalloc.txt b/doc/guides/blender-guardedalloc.txt
index 2e49f25bd9273f2f022d438cd88567145925caa1..14425ec267752164b0345730ee418e62c7f730dd 100644
--- a/doc/guides/blender-guardedalloc.txt
+++ b/doc/guides/blender-guardedalloc.txt
@@ -5,7 +5,7 @@ NOTE: This file does not cover memutil and smart pointers and reference counted
       garbage collection, which are contained in the memutil module.
 
 Blender takes care of dynamic memory allocation using a set of own functions
-which are recognizeable through their MEM_ prefix. All memory allocation and
+which are recognizable through their MEM_ prefix. All memory allocation and
 deallocation in blender is done through these functions.
 
 The following functions are available through MEM_guardedalloc.h:
diff --git a/doc/guides/interface_API.txt b/doc/guides/interface_API.txt
index 1874519db8d752c37eb4982e1f24c860a74752f7..631f2098a225193f0abcd3228b313709139d954c 100644
--- a/doc/guides/interface_API.txt
+++ b/doc/guides/interface_API.txt
@@ -35,7 +35,7 @@ Contents
 4.4 specials
 	15. KEYEVT
 	16. LINK and INLINK
-4.5 uiButton control fuctions
+4.5 uiButton control functions
 
 
 ----------------1. General notes
@@ -130,7 +130,7 @@ It walks through the lists in a rather complex manner:
 	/* so we create a 2nd loop for it */
 	- while first block is a menu
 		- if block is a menu and not initialized: 
-			- initalize 'saveunder'
+			- initialize 'saveunder'
 			- draw it 
 		- get event from queue
 		- call uiDoBlock (handles buttons for single block)
@@ -177,7 +177,7 @@ font:
 With the new truetype option in Blender, this is used for all font families
 
 When a uiBlock is created, each uiButton that is defined gets the uiBlock properties.
-Changing Block properties inbetween will affact uiButtons defined thereafter.
+Changing Block properties in between will affact uiButtons defined thereafter.
 
 
 
@@ -217,7 +217,7 @@ void uiBlockSetButmFunc(uiBlock *block, void (*menufunc)(void *arg, int event),
 void uiAutoBlock(uiBlock *block, float minx, float miny, float sizex, float sizey, UI_BLOCK_ROWS)
 
 	Sets the buttons in this block to automatically align, and fit within boundaries. 
-	Internally it allows multiple colums or rows as well. Only 'row order' has been implemented.
+	Internally it allows multiple columns or rows as well. Only 'row order' has been implemented.
 	The uiDefBut definitions don't need coordinates as input here, but instead:
 	- first value (x1) to indicate row number
 	- width and height values (if filled in) will be used to define a relative width/height.
@@ -253,7 +253,7 @@ In Blender a button can do four things:
 Internally, each button or menu item is a 'uiButton', with a generic API and handling:
 ui_def_but(block, type, retval, str, x1, y1, x2, y2, poin, min, max, a1, a2, tip);
 
-Beacause a lot of obscure generic (re-use) happens here, translation calls have been made 
+Because a lot of obscure generic (re-use) happens here, translation calls have been made
 for each most button types individually.
 
 
@@ -442,7 +442,7 @@ uiDefIconBut(block, INLINK, 0, ICON_INLINK, x1, y1, w, h, void *poin, short from
 	
 
 
-------------- 4.5 uiButton control fuctions
+------------- 4.5 uiButton control functions
 
 
 void uiButSetFunc(uiBut *but, void (*func)(void *arg1, void *arg2), void *arg1, void *arg2)
diff --git a/doc/python_api/examples/mathutils.Color.py b/doc/python_api/examples/mathutils.Color.py
index a55f1195bf6149330c1ec94a1b10961d2dff2872..cedda98ae537fc8e79815f18161be842c4bc9fe6 100644
--- a/doc/python_api/examples/mathutils.Color.py
+++ b/doc/python_api/examples/mathutils.Color.py
@@ -26,5 +26,5 @@ col += mathutils.Color((0.25, 0.0, 0.0))
 # can printed as integers
 print("Color: %d, %d, %d" % (col * 255.0)[:])
 
-# This example prints the color as hexidecimal
-print("Hexidecimal: %.2x%.2x%.2x" % (col * 255.0)[:])
+# This example prints the color as hexadecimal
+print("Hexadecimal: %.2x%.2x%.2x" % (col * 255.0)[:])
diff --git a/doc/python_api/examples/mathutils.Quaternion.py b/doc/python_api/examples/mathutils.Quaternion.py
index 7e5538b7a9672eae557249c66d52f5c862a5b553..8a40389a8d6877c321e37606ef6baf3237a3a335 100644
--- a/doc/python_api/examples/mathutils.Quaternion.py
+++ b/doc/python_api/examples/mathutils.Quaternion.py
@@ -15,7 +15,7 @@ quat_a = mathutils.Quaternion((0.0, 1.0, 0.0), math.radians(90.0))
 quat_b = mathutils.Quaternion((0.0, 0.0, 1.0), math.radians(45.0))
 quat_out = quat_a * quat_b
 
-# print the quat, euler degrees for mear mortals and (axis, angle)
+# print the quat, euler degrees for mere mortals and (axis, angle)
 print("Final Rotation:")
 print(quat_out)
 print("%.2f, %.2f, %.2f" % tuple(math.degrees(a) for a in quat_out.to_euler()))
diff --git a/doc/python_api/rst/bgl.rst b/doc/python_api/rst/bgl.rst
index 0b31e62963cd3b4c077b881f1f0ca9dfe1f487f3..90a1442edeb20aeeaa7489751ea99d7339ce63c4 100644
--- a/doc/python_api/rst/bgl.rst
+++ b/doc/python_api/rst/bgl.rst
@@ -69,7 +69,7 @@ offers a set of extensive examples, including advanced features.
 
 .. function:: glBegin(mode):
 
-   Delimit the vertices of a primitive or a group of like primatives
+   Delimit the vertices of a primitive or a group of like primitives
 
    .. seealso:: `OpenGL Docs <https://www.opengl.org/sdk/docs/man2/xhtml/glBegin.xml>`__
 
diff --git a/doc/python_api/rst/info_gotcha.rst b/doc/python_api/rst/info_gotcha.rst
index 2b361d476da1a86558f8b9cd4919be4d895ed9a3..1917273d85c5b11d5fa096c436022714d6f47183 100644
--- a/doc/python_api/rst/info_gotcha.rst
+++ b/doc/python_api/rst/info_gotcha.rst
@@ -145,8 +145,8 @@ that happens to redraw but is more flexible and integrates better with Blenders
 
 **Ok, Ok! I still want to draw from Python**
 
-If you insist - yes its possible, but scripts that use this hack wont be considered
-for inclusion in Blender and any issues with using it wont be considered bugs,
+If you insist - yes its possible, but scripts that use this hack won't be considered
+for inclusion in Blender and any issues with using it won't be considered bugs,
 this is also not guaranteed to work in future releases.
 
 .. code-block:: python
@@ -265,7 +265,7 @@ All 3 data types can be used for exporting,
 the choice mostly depends on whether the target format supports ngons or not.
 
 - Polygons are the most direct & efficient way to export providing they convert into the output format easily enough.
-- Tessfaces work well for exporting to formats which dont support ngons,
+- Tessfaces work well for exporting to formats which don't support ngons,
   in fact this is the only place where their use is encouraged.
 - BMesh-Faces can work for exporting too but may not be necessary if polygons can be used
   since using bmesh gives some overhead because its not the native storage format in object mode.
@@ -551,7 +551,7 @@ to avoid getting stuck too deep in encoding problems - here are some suggestions
 
 .. note::
 
-   Sometimes it's preferrable to avoid string encoding issues by using bytes instead of Python strings,
+   Sometimes it's preferable to avoid string encoding issues by using bytes instead of Python strings,
    when reading some input its less trouble to read it as binary data
    though you will still need to decide how to treat any strings you want to use with Blender,
    some importers do this.
diff --git a/doc/python_api/rst/info_tips_and_tricks.rst b/doc/python_api/rst/info_tips_and_tricks.rst
index 97bc682894a749a71dde5d78d438226a99399878..57f3246269b5619fd4f1132cc8f5edc57d36a723 100644
--- a/doc/python_api/rst/info_tips_and_tricks.rst
+++ b/doc/python_api/rst/info_tips_and_tricks.rst
@@ -209,7 +209,7 @@ Bundled Python & Extensions
 ===========================
 
 The Blender releases distributed from blender.org include a complete Python installation on all platforms,
-this has the disadvantage that any extensions you have installed in your systems Python wont be found by Blender.
+this has the disadvantage that any extensions you have installed in your systems Python won't be found by Blender.
 
 There are 2 ways around this:
 
diff --git a/doc/python_api/rst_from_bmesh_opdefines.py b/doc/python_api/rst_from_bmesh_opdefines.py
index d3e4b2a0cfdba11b42d01a7e3b6569d8baf60085..04cc2feee3ebfdc725f98521269e29e19c0c760d 100644
--- a/doc/python_api/rst_from_bmesh_opdefines.py
+++ b/doc/python_api/rst_from_bmesh_opdefines.py
@@ -303,7 +303,7 @@ def main():
                     elif tp_sub == BMO_OP_SLOT_SUBTYPE_PTR_MESH:
                         tp_str = ":class:`bpy.types.Mesh`"
                     else:
-                        print("Cant find", vars_dict_reverse[tp_sub])
+                        print("Can't find", vars_dict_reverse[tp_sub])
                         assert(0)
 
                 elif tp == BMO_OP_SLOT_ELEMENT_BUF:
@@ -340,10 +340,10 @@ def main():
                         elif tp_sub == BMO_OP_SLOT_SUBTYPE_MAP_INTERNAL:
                             tp_str += "unknown internal data, not compatible with python"
                         else:
-                            print("Cant find", vars_dict_reverse[tp_sub])
+                            print("Can't find", vars_dict_reverse[tp_sub])
                             assert(0)
                 else:
-                    print("Cant find", vars_dict_reverse[tp])
+                    print("Can't find", vars_dict_reverse[tp])
                     assert(0)
 
                 args_wash.append((name, tp_str, comment))
diff --git a/doc/python_api/sphinx_changelog_gen.py b/doc/python_api/sphinx_changelog_gen.py
index 8758590dbaea1b753a137aa2da23439e2b7e190b..c96412b9d65cf98aaae77262a25c78388d11af03 100644
--- a/doc/python_api/sphinx_changelog_gen.py
+++ b/doc/python_api/sphinx_changelog_gen.py
@@ -113,7 +113,7 @@ def api_dump():
             )
         del props
 
-        # python props, tricky since we dont know much about them.
+        # python props, tricky since we don't know much about them.
         for prop_id, attr in struct_info.get_py_properties():
 
             dump_class[prop_id] = (
@@ -289,7 +289,7 @@ def api_changelog(api_from, api_to, api_out):
         if props_old:
             write_title("Removed", "^")
             for prop_id in props_old:
-                fw("* **%s**\n" % prop_id)  # cant link to remvoed docs
+                fw("* **%s**\n" % prop_id)  # can't link to removed docs
             fw("\n")
 
         if props_moved:
@@ -351,7 +351,7 @@ def main():
         "--api_out", dest="api_out", metavar='FILE',
         help="Output sphinx changelog")
 
-    args = parser.parse_args(argv)  # In this example we wont use the args
+    args = parser.parse_args(argv)  # In this example we won't use the args
 
     if not argv:
         print("No args given!")
diff --git a/doc/python_api/sphinx_doc_gen.py b/doc/python_api/sphinx_doc_gen.py
index 93ffad12bd625954253600594faff6ef0b23de6e..0eb2ebefe3253932d7865cfda6eca2bf38d40998 100644
--- a/doc/python_api/sphinx_doc_gen.py
+++ b/doc/python_api/sphinx_doc_gen.py
@@ -491,7 +491,7 @@ if ARGS.sphinx_build_pdf:
 
 # --------------------------------API DUMP--------------------------------------
 
-# lame, python wont give some access
+# lame, python won't give some access
 ClassMethodDescriptorType = type(dict.__dict__['fromkeys'])
 MethodDescriptorType = type(dict.get)
 GetSetDescriptorType = type(int.real)
@@ -690,7 +690,7 @@ def pyfunc2sphinx(ident, fw, module_name, type_name, identifier, py_func, is_cla
     if not is_class:
         func_type = "function"
 
-        # ther rest are class methods
+        # the rest are class methods
     elif arg_str.startswith("(self, ") or arg_str == "(self)":
         arg_str = "()" if (arg_str == "(self)") else ("(" + arg_str[7:])
         func_type = "method"
@@ -824,7 +824,7 @@ def pymodule2sphinx(basepath, module_name, module, title):
     fw(".. module:: %s\n\n" % module_name)
 
     if module.__doc__:
-        # Note, may contain sphinx syntax, dont mangle!
+        # Note, may contain sphinx syntax, don't mangle!
         fw(module.__doc__.strip())
         fw("\n\n")
 
@@ -1120,7 +1120,7 @@ def pycontext2sphinx(basepath):
     def write_contex_cls():
 
         fw(title_string("Global Context", "-"))
-        fw("These properties are avilable in any contexts.\n\n")
+        fw("These properties are available in any contexts.\n\n")
 
         # very silly. could make these global and only access once.
         # structs, funcs, ops, props = rna_info.BuildRNAInfo()
@@ -1144,7 +1144,7 @@ def pycontext2sphinx(basepath):
             if prop.description:
                 fw("   %s\n\n" % prop.description)
 
-            # special exception, cant use genric code here for enums
+            # special exception, can't use generic code here for enums
             if prop.type == "enum":
                 enum_text = pyrna_enum2sphinx(prop)
                 if enum_text:
@@ -1266,7 +1266,7 @@ def pyrna2sphinx(basepath):
             if prop.name or prop.description:
                 fw(ident + "   " + ", ".join(val for val in (prop.name, prop.description) if val) + "\n\n")
 
-            # special exception, cant use genric code here for enums
+            # special exception, can't use generic code here for enums
             if enum_text:
                 write_indented_lines(ident + "   ", fw, enum_text)
                 fw("\n")
@@ -1365,7 +1365,7 @@ def pyrna2sphinx(basepath):
             if prop.description:
                 fw("      %s\n\n" % prop.description)
 
-            # special exception, cant use genric code here for enums
+            # special exception, can't use generic code here for enums
             if prop.type == "enum":
                 enum_text = pyrna_enum2sphinx(prop)
                 if enum_text:
@@ -1398,7 +1398,7 @@ def pyrna2sphinx(basepath):
             elif func.return_values:  # multiple return values
                 fw("      :return (%s):\n" % ", ".join(prop.identifier for prop in func.return_values))
                 for prop in func.return_values:
-                    # TODO, pyrna_enum2sphinx for multiple return values... actually dont
+                    # TODO, pyrna_enum2sphinx for multiple return values... actually don't
                     # think we even use this but still!!!
                     type_descr = prop.get_type_description(
                         as_ret=True, class_fmt=":class:`%s`", collection_id=_BPY_PROP_COLLECTION_ID)
diff --git a/doc/python_api/sphinx_doc_gen.sh b/doc/python_api/sphinx_doc_gen.sh
index b3bdd386f8cc707bd02e7a9dd008206010901d91..d7420f990704a3641c95694fb6384d7efce79b40 100755
--- a/doc/python_api/sphinx_doc_gen.sh
+++ b/doc/python_api/sphinx_doc_gen.sh
@@ -58,7 +58,7 @@ SPHINX_WORKDIR="$(mktemp --directory --suffix=.sphinx)"
 # Generate reStructuredText (blender/python only)
 
 if $DO_EXE_BLENDER ; then
-	# dont delete existing docs, now partial updates are used for quick builds.
+	# don't delete existing docs, now partial updates are used for quick builds.
 	$BLENDER_BIN \
 		--background \
 		-noaudio \
@@ -89,7 +89,7 @@ if $DO_OUT_HTML ; then
 	# and zip up there, for now this is OK
 	rm -rf sphinx-out/.doctrees
 
-	# incase we have a zip already
+	# in case we have a zip already
 	rm -f blender_python_reference_$BLENDER_VERSION.zip
 
 	# ------------------------------------------------------------------------
diff --git a/release/scripts/freestyle/modules/freestyle/shaders.py b/release/scripts/freestyle/modules/freestyle/shaders.py
index bce6642220b409321b95b7920c3f409137bfae14..28b8aa9b23e118dcbbda1ee3a79c937b02b6cd10 100644
--- a/release/scripts/freestyle/modules/freestyle/shaders.py
+++ b/release/scripts/freestyle/modules/freestyle/shaders.py
@@ -881,7 +881,7 @@ class pyBluePrintCirclesShader(StrokeShader):
         # times as possible.
         #
         # This works because the phases and directions are only
-        # dependant on the stroke length, and the chance that
+        # dependent on the stroke length, and the chance that
         # stroke.resample() above produces strokes of the same length
         # is quite high.
         #
diff --git a/release/scripts/modules/addon_utils.py b/release/scripts/modules/addon_utils.py
index 5cb313ec41b672299b582735521ec46a7a655a74..dc7f4053a01e14e7139ed4d560c038b60247cc58 100644
--- a/release/scripts/modules/addon_utils.py
+++ b/release/scripts/modules/addon_utils.py
@@ -352,7 +352,7 @@ def enable(module_name, *, default_set=False, persistent=False, handle_error=Non
             mod.__time__ = os.path.getmtime(mod.__file__)
             mod.__addon_enabled__ = False
         except Exception as ex:
-            # if the addon doesn't exist, dont print full traceback
+            # if the addon doesn't exist, don't print full traceback
             if type(ex) is ImportError and ex.name == module_name:
                 print("addon not found:", repr(module_name))
             else:
diff --git a/release/scripts/modules/animsys_refactor.py b/release/scripts/modules/animsys_refactor.py
index 39f0ad2f0497f8c71de014b50d36b078fd95d774..7255ce5cd227f17091d88ddb04e5e035ad985e5a 100644
--- a/release/scripts/modules/animsys_refactor.py
+++ b/release/scripts/modules/animsys_refactor.py
@@ -34,7 +34,7 @@ IS_TESTING = False
 
 def drepr(string):
     # is there a less crappy way to do this in python?, re.escape also escapes
-    # single quotes strings so cant use it.
+    # single quotes strings so can't use it.
     return '"%s"' % repr(string)[1:-1].replace("\"", "\\\"").replace("\\'", "'")
 
 
diff --git a/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py b/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py
index 10a386039c43d5775949f92a5d9eedb43772ed0a..dc4826288e3255a6a51766cd93578dda7461d67b 100644
--- a/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py
+++ b/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py
@@ -248,7 +248,7 @@ def dump_rna_messages(msgs, reports, settings, verbose=False):
         # Now here is the *ugly* hack!
         # Unfortunately, all classes we want to access are not available from bpy.types (OperatorProperties subclasses
         # are not here, as they have the same name as matching Operator ones :( ). So we use __subclasses__() calls
-        # to walk through all rna hierachy.
+        # to walk through all rna hierarchy.
         # But unregistered classes remain listed by relevant __subclasses__() calls (be it a Py or BPY/RNA bug),
         # and obviously the matching RNA struct exists no more, so trying to access their data (even the identifier)
         # quickly leads to segfault!
@@ -498,7 +498,7 @@ def dump_py_messages_from_files(msgs, reports, files, settings):
     def extract_strings_split(node):
         """
         Returns a list args as returned by 'extract_strings()', but split into groups based on separate_nodes, this way
-        expressions like ("A" if test else "B") wont be merged but "A" + "B" will.
+        expressions like ("A" if test else "B") won't be merged but "A" + "B" will.
         """
         estr_ls = []
         nds_ls = []
diff --git a/release/scripts/modules/bl_i18n_utils/settings.py b/release/scripts/modules/bl_i18n_utils/settings.py
index 68a5537567c7be10f8d2298fbb369f32e5fdb0cd..7d5b33c50acc397deb3c40e8a6d225f43cca0078 100644
--- a/release/scripts/modules/bl_i18n_utils/settings.py
+++ b/release/scripts/modules/bl_i18n_utils/settings.py
@@ -262,7 +262,7 @@ PYGETTEXT_KEYWORDS = (() +
 
 # Check printf mismatches between msgid and msgstr.
 CHECK_PRINTF_FORMAT = (
-    r"(?!<%)(?:%%)*%"          # Begining, with handling for crazy things like '%%%%%s'
+    r"(?!<%)(?:%%)*%"          # Beginning, with handling for crazy things like '%%%%%s'
     r"[-+#0]?"                 # Flags (note: do not add the ' ' (space) flag here, generates too much false positives!)
     r"(?:\*|[0-9]+)?"          # Width
     r"(?:\.(?:\*|[0-9]+))?"    # Precision
diff --git a/release/scripts/modules/bl_i18n_utils/utils.py b/release/scripts/modules/bl_i18n_utils/utils.py
index 880721176e09e1b3a26e5c9d03858085a1f600ec..4be7ccf3356bd45bf861ebefa4cd76b127390c9a 100644
--- a/release/scripts/modules/bl_i18n_utils/utils.py
+++ b/release/scripts/modules/bl_i18n_utils/utils.py
@@ -457,7 +457,7 @@ class I18nMessages:
     def check(self, fix=False):
         """
         Check consistency between messages and their keys!
-        Check messages using format stuff are consistant between msgid and msgstr!
+        Check messages using format stuff are consistent between msgid and msgstr!
         If fix is True, tries to fix the issues.
         Return a list of found errors (empty if everything went OK!).
         """
diff --git a/release/scripts/modules/bl_i18n_utils/utils_rtl.py b/release/scripts/modules/bl_i18n_utils/utils_rtl.py
index 261d1544ac6a9686ca61d1955440a08c9cea06dd..c446182dfc0f670892677642a6db4d60a6512380 100755
--- a/release/scripts/modules/bl_i18n_utils/utils_rtl.py
+++ b/release/scripts/modules/bl_i18n_utils/utils_rtl.py
@@ -28,7 +28,7 @@
 #        Windows or OsX.
 #        This uses ctypes, as there is no py3 binding for fribidi currently.
 #        This implies you only need the compiled C library to run it.
-#        Finally, note that it handles some formating/escape codes (like
+#        Finally, note that it handles some formatting/escape codes (like
 #        \", %s, %x12, %.4f, etc.), protecting them from ugly (evil) fribidi,
 #        which seems completely unaware of such things (as unicode is...).
 
@@ -79,7 +79,7 @@ MENU_DETECT_REGEX = re.compile("%x\\d+\\|")
 ##### Kernel processing funcs. #####
 def protect_format_seq(msg):
     """
-    Find some specific escaping/formating sequences (like \", %s, etc.,
+    Find some specific escaping/formatting sequences (like \", %s, etc.,
     and protect them from any modification!
     """
 #    LRM = "\u200E"
diff --git a/release/scripts/modules/blend_render_info.py b/release/scripts/modules/blend_render_info.py
index 3b4fb25500549246abae6bd6f94f4de2cec56239..8cf4734bddb01bd169dfded3e6766f63058cfba6 100755
--- a/release/scripts/modules/blend_render_info.py
+++ b/release/scripts/modules/blend_render_info.py
@@ -22,7 +22,7 @@
 
 # This module can get render info without running from inside blender.
 #
-# This struct wont change according to Ton.
+# This struct won't change according to Ton.
 # Note that the size differs on 32/64bit
 #
 # typedef struct BHead {
diff --git a/release/scripts/modules/bpy/path.py b/release/scripts/modules/bpy/path.py
index 6af78bbb4c07c2f9f123ec4ef1f3794cf5220eca..d236af870527ff45384511e3bbd47d2c4605523d 100644
--- a/release/scripts/modules/bpy/path.py
+++ b/release/scripts/modules/bpy/path.py
@@ -301,7 +301,7 @@ def resolve_ncase(path):
         if f_iter_nocase:
             return _os.path.join(dirpath, f_iter_nocase) + suffix, True
         else:
-            # cant find the right one, just return the path as is.
+            # can't find the right one, just return the path as is.
             return path, False
 
     ncase_path, found = _ncase_path_found(path)
diff --git a/release/scripts/modules/bpy_extras/mesh_utils.py b/release/scripts/modules/bpy_extras/mesh_utils.py
index 43b02e5c881054148c02b2a686eb913cffa91645..a7872daca6703faa6e910ea4661005867abdd6c4 100644
--- a/release/scripts/modules/bpy_extras/mesh_utils.py
+++ b/release/scripts/modules/bpy_extras/mesh_utils.py
@@ -32,7 +32,7 @@ __all__ = (
 
 def mesh_linked_uv_islands(mesh):
     """
-    Splits the mesh into connected polygons, use this for seperating cubes from
+    Splits the mesh into connected polygons, use this for separating cubes from
     other mesh elements within 1 mesh datablock.
 
     :arg mesh: the mesh used to group with.
@@ -92,7 +92,7 @@ def mesh_linked_uv_islands(mesh):
 
 def mesh_linked_tessfaces(mesh):
     """
-    Splits the mesh into connected faces, use this for seperating cubes from
+    Splits the mesh into connected faces, use this for separating cubes from
     other mesh elements within 1 mesh datablock.
 
     :arg mesh: the mesh used to group with.
@@ -182,7 +182,7 @@ def edge_loops_from_tessfaces(mesh, tessfaces=None, seams=()):
     Edge loops defined by faces
 
     Takes me.tessfaces or a list of faces and returns the edge loops
-    These edge loops are the edges that sit between quads, so they dont touch
+    These edge loops are the edges that sit between quads, so they don't touch
     1 quad, note: not connected will make 2 edge loops,
     both only containing 2 edges.
 
@@ -252,7 +252,7 @@ def edge_loops_from_tessfaces(mesh, tessfaces=None, seams=()):
                 i = ed_adj.index(context_loop[-2])
                 context_loop.append(ed_adj[not i])
 
-                # Dont look at this again
+                # Don't look at this again
                 del ed_adj[:]
 
     return edge_loops
@@ -377,7 +377,7 @@ def ngon_tessellate(from_data, indices, fix_loops=True):
 
     else:
         """
-        Seperate this loop into multiple loops be finding edges that are
+        Separate this loop into multiple loops be finding edges that are
         used twice. This is used by lightwave LWO files a lot
         """
 
diff --git a/release/scripts/modules/console/complete_import.py b/release/scripts/modules/console/complete_import.py
index b9b7c6cb779847ca3def9692d8f5d00ac8594504..ff3099d728523efca476d2f8a489fe565573b57c 100644
--- a/release/scripts/modules/console/complete_import.py
+++ b/release/scripts/modules/console/complete_import.py
@@ -37,7 +37,7 @@ changes have been made:
 - limit list of modules to prefix in case of "from w"
 - sorted modules
 - added sphinx documentation
-- complete() returns a blank list of the module isnt found
+- complete() returns a blank list of the module isn't found
 """
 
 
diff --git a/release/scripts/modules/console_python.py b/release/scripts/modules/console_python.py
index 68ff1ed60a789b23cf7b0238572183d32e9fc583..f264de5b140029ab13a97ef0405189acc039f7cd 100644
--- a/release/scripts/modules/console_python.py
+++ b/release/scripts/modules/console_python.py
@@ -68,7 +68,7 @@ def get_console(console_id):
         # check if clearing the namespace is needed to avoid a memory leak.
         # the window manager is normally loaded with new blend files
         # so this is a reasonable way to deal with namespace clearing.
-        # bpy.data hashing is reset by undo so cant be used.
+        # bpy.data hashing is reset by undo so can't be used.
         hash_prev = getattr(get_console, "consoles_namespace_hash", 0)
 
         if hash_prev != hash_next:
diff --git a/release/scripts/modules/rna_info.py b/release/scripts/modules/rna_info.py
index 1a3d069887164699f66c58692c13a2bb72d446b3..53d2e2d01515dd3eb8361f0a901f9d857518cdb4 100644
--- a/release/scripts/modules/rna_info.py
+++ b/release/scripts/modules/rna_info.py
@@ -83,7 +83,7 @@ def float_as_string(f):
 
 
 def get_py_class_from_rna(rna_type):
-    """ Get's the Python type for a class which isn't necessarily added to ``bpy.types``.
+    """ Gets the Python type for a class which isn't necessarily added to ``bpy.types``.
     """
     identifier = rna_type.identifier
     py_class = getattr(bpy.types, identifier, None)
diff --git a/release/scripts/modules/rna_xml.py b/release/scripts/modules/rna_xml.py
index e8705834df3bc352b50b39811c7b716c970b1f3c..a4610c65a43b4a575a6258d2abc5b8c836550f80 100644
--- a/release/scripts/modules/rna_xml.py
+++ b/release/scripts/modules/rna_xml.py
@@ -32,7 +32,7 @@ def build_property_typemap(skip_classes, skip_typemap):
         if issubclass(cls, skip_classes):
             continue
 
-        # # to support skip-save we cant get all props
+        # # to support skip-save we can't get all props
         # properties = cls.bl_rna.properties.keys()
         properties = []
         for prop_id, prop in cls.bl_rna.properties.items():
@@ -149,7 +149,7 @@ def rna2xml(fw=print_ln,
                     subvalue_rna = value.path_resolve(prop, False)
                     if type(subvalue_rna).__name__ == "bpy_prop_array":
                         # check if this is a 0-1 color (rgb, rgba)
-                        # in that case write as a hexidecimal
+                        # in that case write as a hexadecimal
                         prop_rna = value.bl_rna.properties[prop]
                         if (prop_rna.subtype == 'COLOR_GAMMA' and
                                 prop_rna.hard_min == 0.0 and
@@ -274,7 +274,7 @@ def xml2rna(root_xml,
                     tp_name = 'STR'
                 elif hasattr(subvalue, "__len__"):
                     if value_xml.startswith("#"):
-                        # read hexidecimal value as float array
+                        # read hexadecimal value as float array
                         value_xml_split = value_xml[1:]
                         value_xml_coerce = [int(value_xml_split[i:i + 2], 16) /
                                             255 for i in range(0, len(value_xml_split), 2)]
diff --git a/release/scripts/startup/bl_operators/object.py b/release/scripts/startup/bl_operators/object.py
index 91e5859d2c0d7347ebced554b464012de607a808..a66ffb0da1368c46534da40155e17215610e160b 100644
--- a/release/scripts/startup/bl_operators/object.py
+++ b/release/scripts/startup/bl_operators/object.py
@@ -473,7 +473,7 @@ class ShapeTransfer(Operator):
         objects = [ob for ob in context.selected_editable_objects
                    if ob != ob_act]
 
-        if 1:  # swap from/to, means we cant copy to many at once.
+        if 1:  # swap from/to, means we can't copy to many at once.
             if len(objects) != 1:
                 self.report({'ERROR'},
                             ("Expected one other selected "
diff --git a/release/scripts/startup/bl_operators/uvcalc_follow_active.py b/release/scripts/startup/bl_operators/uvcalc_follow_active.py
index 72445be6950dbd073b97e6bedea8e0d3ddabe242..6c307e0f440dd0a3d6534be6c651c6befe381822 100644
--- a/release/scripts/startup/bl_operators/uvcalc_follow_active.py
+++ b/release/scripts/startup/bl_operators/uvcalc_follow_active.py
@@ -52,7 +52,7 @@ def extend(obj, operator, EXTEND_MODE):
 
     # our own local walker
     def walk_face_init(faces, f_act):
-        # first tag all faces True (so we dont uvmap them)
+        # first tag all faces True (so we don't uvmap them)
         for f in bm.faces:
             f.tag = True
         # then tag faces arg False
diff --git a/release/scripts/startup/bl_operators/uvcalc_lightmap.py b/release/scripts/startup/bl_operators/uvcalc_lightmap.py
index 0b0dd58e80f2a89276d2d4f49bda6cc51df4e262..d1774205aee85ac5ef35ea76490ec7abf90aa905 100644
--- a/release/scripts/startup/bl_operators/uvcalc_lightmap.py
+++ b/release/scripts/startup/bl_operators/uvcalc_lightmap.py
@@ -450,7 +450,7 @@ def lightmap_uvpack(meshes,
             max_int_dimension = int(((side_len / float_to_int_factor)) / PREF_BOX_DIV)
             ok = True
         else:
-            max_int_dimension = 0.0  # wont be used
+            max_int_dimension = 0.0  # won't be used
             ok = False
 
         # RECURSIVE pretty face grouping
diff --git a/release/scripts/startup/bl_operators/uvcalc_smart_project.py b/release/scripts/startup/bl_operators/uvcalc_smart_project.py
index f0b1f934e389047fd8f5ca0e6abfb305fec9461e..318012d57ab06f715b080aa18ebd6aa161ffd052 100644
--- a/release/scripts/startup/bl_operators/uvcalc_smart_project.py
+++ b/release/scripts/startup/bl_operators/uvcalc_smart_project.py
@@ -271,7 +271,7 @@ def optiRotateUvIsland(faces):
     # orient them vertically (could be an option)
     minx, miny, maxx, maxy = boundsIsland(faces)
     w, h = maxx - minx, maxy - miny
-    # use epsilon so we dont randomly rotate (almost) perfect squares.
+    # use epsilon so we don't randomly rotate (almost) perfect squares.
     if h + 0.00001 < w:
         from math import pi
         angle = pi / 2.0
@@ -357,7 +357,7 @@ def mergeUvIslands(islandList):
                     BREAK = True
                     break
 
-                # Now we have 2 islands, if the efficiency of the islands lowers theres an
+                # Now we have 2 islands, if the efficiency of the islands lowers there's an
                 # increasing likely hood that we can fit merge into the bigger UV island.
                 # this ensures a tight fit.
 
@@ -625,7 +625,7 @@ def packIslands(islandList):
             h = SMALL_NUM
 
         """Save the offset to be applied later,
-        we could apply to the UVs now and allign them to the bottom left hand area
+        we could apply to the UVs now and align them to the bottom left hand area
         of the UV coords like the box packer imagines they are
         but, its quicker just to remember their offset and
         apply the packing and offset in 1 pass """
@@ -873,7 +873,7 @@ def main(context,
 
         # This while only gathers projection vecs, faces are assigned later on.
         while 1:
-            # If theres none there then start with the largest face
+            # If there's none there then start with the largest face
 
             # add all the faces that are close.
             for fIdx in range(len(tempMeshFaces) - 1, -1, -1):
diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py
index edca3a521eeb3de09eb6f05981ac5c0d3cfcc6ce..7ea1eb4a89d32032f156cfa3ad1447fcfff208d6 100644
--- a/release/scripts/startup/bl_operators/wm.py
+++ b/release/scripts/startup/bl_operators/wm.py
@@ -98,7 +98,7 @@ def operator_path_is_undo(context, data_path):
     # note that if we have data paths that use strings this could fail
     # luckily we don't do this!
     #
-    # When we cant find the data owner assume no undo is needed.
+    # When we can't find the data owner assume no undo is needed.
     data_path_head = data_path.rpartition(".")[0]
 
     if not data_path_head:
diff --git a/release/scripts/startup/bl_ui/space_clip.py b/release/scripts/startup/bl_ui/space_clip.py
index f8d9ae3ef9f17e09071755890fa5272d0eee3ab6..acc91edc41096ceaaaad9cf69baf350f34fbeb61 100644
--- a/release/scripts/startup/bl_ui/space_clip.py
+++ b/release/scripts/startup/bl_ui/space_clip.py
@@ -944,7 +944,7 @@ class CLIP_PT_stabilization(CLIP_PT_reconstruction_panel, Panel):
             sub.menu('CLIP_MT_stabilize_2d_specials', text="",
                      icon='DOWNARROW_HLT')
 
-            # Usually we don't hide things from iterface, but here every pixel of
+            # Usually we don't hide things from interface, but here every pixel of
             # vertical space is precious.
             if stab.use_stabilize_rotation:
                 box.label(text="Tracks For Rotation / Scale")
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 0a365c6a20ca1b75db3a8ed333e62504d587e8a3..818c218a362873a029d08d127dfbc07019df1dba 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -1294,7 +1294,7 @@ class INFO_MT_add(Menu):
     def draw(self, context):
         layout = self.layout
 
-        # note, don't use 'EXEC_SCREEN' or operators wont get the 'v3d' context.
+        # note, don't use 'EXEC_SCREEN' or operators won't get the 'v3d' context.
 
         # Note: was EXEC_AREA, but this context does not have the 'rv3d', which prevents
         #       "align_view" to work on first call (see [#32719]).
diff --git a/release/scripts/templates_py/background_job.py b/release/scripts/templates_py/background_job.py
index 2f444641a512c3f2c7db3052abe638d1785aa6d1..bd48e7bf6227ac4ff8d5a5ffd61c9bf7d3df8df8 100644
--- a/release/scripts/templates_py/background_job.py
+++ b/release/scripts/templates_py/background_job.py
@@ -95,7 +95,7 @@ def main():
         help="Render an image to the specified path",
     )
 
-    args = parser.parse_args(argv)  # In this example we wont use the args
+    args = parser.parse_args(argv)  # In this example we won't use the args
 
     if not argv:
         parser.print_help()
diff --git a/source/blender/alembic/intern/abc_archive.h b/source/blender/alembic/intern/abc_archive.h
index 84309fbc9df2c5b1de98bd7e1740919d59d29fe9..5696aed9ef3e1dd8ccd035e56312547cd522c539 100644
--- a/source/blender/alembic/intern/abc_archive.h
+++ b/source/blender/alembic/intern/abc_archive.h
@@ -53,7 +53,7 @@ public:
 
 	/**
 	 * Returns true when either Blender is compiled with HDF5 support and
-	 * the archive was succesfully opened (valid() will also return true),
+	 * the archive was successfully opened (valid() will also return true),
 	 * or when Blender was built without HDF5 support but a HDF5 file was
 	 * detected (valid() will return false).
 	 */
diff --git a/source/blender/alembic/intern/abc_curves.cc b/source/blender/alembic/intern/abc_curves.cc
index f73fe957fea8a7a278ed4f75a1f8998a6c62d537..b0e2538e8bc5c1be7ae81690d51778489f1b8fd8 100644
--- a/source/blender/alembic/intern/abc_curves.cc
+++ b/source/blender/alembic/intern/abc_curves.cc
@@ -154,7 +154,7 @@ void AbcCurveWriter::do_write()
 		if (nurbs->knotsu != NULL) {
 			const size_t num_knots = KNOTSU(nurbs);
 
-			/* Add an extra knot at the beggining and end of the array since most apps
+			/* Add an extra knot at the beginning and end of the array since most apps
 			 * require/expect them. */
 			knots.resize(num_knots + 2);
 
diff --git a/source/blender/alembic/intern/abc_nurbs.cc b/source/blender/alembic/intern/abc_nurbs.cc
index eaef06fd6d11022a6ba358dab7a5d77c83b47e9f..6273507486a6040ad2adcf72536768352bfc629c 100644
--- a/source/blender/alembic/intern/abc_nurbs.cc
+++ b/source/blender/alembic/intern/abc_nurbs.cc
@@ -103,7 +103,7 @@ static void get_knots(std::vector<float> &knots, const int num_knots, float *nu_
 		return;
 	}
 
-	/* Add an extra knot at the beggining and end of the array since most apps
+	/* Add an extra knot at the beginning and end of the array since most apps
 	 * require/expect them. */
 	knots.reserve(num_knots + 2);
 
@@ -167,7 +167,7 @@ void AbcNurbsWriter::do_write()
 		sample.setNu(nu->pntsu);
 		sample.setNv(nu->pntsv);
 
-		/* TODO(kevin): to accomodate other software we should duplicate control
+		/* TODO(kevin): to accommodate other software we should duplicate control
 		 * points to indicate that a NURBS is cyclic. */
 		OCompoundProperty user_props = m_nurbs_schema[count].getUserProperties();
 
diff --git a/source/blender/alembic/intern/abc_util.h b/source/blender/alembic/intern/abc_util.h
index 2526958111acd3944a3f42276f08f2aa73ee8f08..06eb3f140ca99b2c5536cb035109ceb9c3cb54f7 100644
--- a/source/blender/alembic/intern/abc_util.h
+++ b/source/blender/alembic/intern/abc_util.h
@@ -167,7 +167,7 @@ typedef enum {
 } AbcAxisSwapMode;
 
 /* Create a rotation matrix for each axis from euler angles.
- * Euler angles are swaped to change coordinate system. */
+ * Euler angles are swapped to change coordinate system. */
 void create_swapped_rotation_matrix(
         float rot_x_mat[3][3], float rot_y_mat[3][3],
         float rot_z_mat[3][3], const float euler[3],
@@ -197,7 +197,7 @@ public:
 /* *************************** */
 
 /**
- * Utility class whose purpose is to more easily log related informations. An
+ * Utility class whose purpose is to more easily log related information. An
  * instance of the SimpleLogger can be created in any context, and will hold a
  * copy of all the strings passed to its output stream.
  *
diff --git a/source/blender/alembic/intern/alembic_capi.cc b/source/blender/alembic/intern/alembic_capi.cc
index 0d2316ce7d9f8adca4a30694da184cb798b9b8d6..b7c1f98bfb0b17314fb6881e8cfea4d1eaa6af1e 100644
--- a/source/blender/alembic/intern/alembic_capi.cc
+++ b/source/blender/alembic/intern/alembic_capi.cc
@@ -293,7 +293,7 @@ static void export_endjob(void *customdata)
 
 	if (!data->settings.logger.empty()) {
 		std::cerr << data->settings.logger;
-		WM_report(RPT_ERROR, "Errors occured during the export, look in the console to know more...");
+		WM_report(RPT_ERROR, "Errors occurred during the export, look in the console to know more...");
 	}
 
 	G.is_rendering = false;
@@ -318,7 +318,7 @@ bool ABC_export(
 	 * ExportJobData contains an ExportSettings containing a SimpleLogger.
 	 *
 	 * Since ExportJobData is a C-style struct dynamically allocated with
-	 * MEM_mallocN (see above), its construtor is never called, therefore the
+	 * MEM_mallocN (see above), its constructor is never called, therefore the
 	 * ExportSettings constructor is not called which implies that the
 	 * SimpleLogger one is not called either. SimpleLogger in turn does not call
 	 * the constructor of its data members which ultimately means that its
@@ -797,7 +797,7 @@ static void import_endjob(void *user_data)
 		for (iter = data->readers.begin(); iter != data->readers.end(); ++iter) {
 			Object *ob = (*iter)->object();
 
-			/* It's possible that cancellation occured between the creation of
+			/* It's possible that cancellation occurred between the creation of
 			 * the reader and the creation of the Blender object. */
 			if (ob == NULL) continue;
 
diff --git a/source/blender/collada/DocumentImporter.h b/source/blender/collada/DocumentImporter.h
index c5bc6907867ae0651a3395d169c7c4ae9d1353ff..17e61326032a9f66a5eae79fb0f0742c86fc8545 100644
--- a/source/blender/collada/DocumentImporter.h
+++ b/source/blender/collada/DocumentImporter.h
@@ -85,7 +85,7 @@ public:
 	/**
 	 * This method will be called if an error in the loading process occurred and the loader cannot
 	 * continue to load. The writer should undo all operations that have been performed.
-	 * \param errorMessage A message containing informations about the error that occurred.
+	 * \param errorMessage A message containing information about the error that occurred.
 	 */
 	void cancel(const COLLADAFW::String& errorMessage);
 
diff --git a/source/blender/editors/animation/keyingsets.c b/source/blender/editors/animation/keyingsets.c
index 5e4db3ca61c22cd4387ee2efc6ae4f82ddb57c34..6962647b9b788fe6cbf3ba9ede7e94e026a55585 100644
--- a/source/blender/editors/animation/keyingsets.c
+++ b/source/blender/editors/animation/keyingsets.c
@@ -709,7 +709,7 @@ int ANIM_scene_get_keyingset_index(Scene *scene, KeyingSet *ks)
 }
 
 /* Get Keying Set to use for Auto-Keyframing some transforms */
-KeyingSet *ANIM_get_keyingset_for_autokeying(Scene *scene, const char *tranformKSName)
+KeyingSet *ANIM_get_keyingset_for_autokeying(Scene *scene, const char *transformKSName)
 {
 	/* get KeyingSet to use
 	 *	- use the active KeyingSet if defined (and user wants to use it for all autokeying),
@@ -720,7 +720,7 @@ KeyingSet *ANIM_get_keyingset_for_autokeying(Scene *scene, const char *tranformK
 	else if (IS_AUTOKEY_FLAG(scene, INSERTAVAIL))
 		return ANIM_builtin_keyingset_get_named(NULL, ANIM_KS_AVAILABLE_ID);
 	else
-		return ANIM_builtin_keyingset_get_named(NULL, tranformKSName);
+		return ANIM_builtin_keyingset_get_named(NULL, transformKSName);
 }
 
 /* Menu of All Keying Sets ----------------------------- */
diff --git a/source/blender/freestyle/intern/view_map/ViewMapIO.cpp b/source/blender/freestyle/intern/view_map/ViewMapIO.cpp
index 3e80c004b5f36ae44aec8ce20c84b8f54e1b5399..f59291d910fa974691d9fff133a5c870c762ad80 100644
--- a/source/blender/freestyle/intern/view_map/ViewMapIO.cpp
+++ b/source/blender/freestyle/intern/view_map/ViewMapIO.cpp
@@ -979,7 +979,7 @@ int load(istream& in, ViewMap *vm, ProgressBar *pb)
 	READ(flags);
 	Options::setFlags(flags);
 
-	// Read the size of the five ViewMap's lists (with some extra informations for the ViewVertices)
+	// Read the size of the five ViewMap's lists (with some extra information for the ViewVertices)
 	// and instantiate them (with default costructors)
 	unsigned vs_s, fe_s, fe_rle1, fe_rle2, sv_s, ve_s, vv_s, vv_rle1, vv_rle2;
 	READ(vs_s);
@@ -1118,7 +1118,7 @@ int save(ostream& out, ViewMap *vm, ProgressBar *pb)
 	unsigned char flags = Options::getFlags();
 	WRITE(flags);
 
-	// Write the size of the five lists (with some extra informations for the ViewVertices)
+	// Write the size of the five lists (with some extra information for the ViewVertices)
 	unsigned size;
 	size = vm->ViewShapes().size();
 	WRITE(size);
diff --git a/source/blender/imbuf/IMB_imbuf_types.h b/source/blender/imbuf/IMB_imbuf_types.h
index ee51854d7ed344354389af6ebbc8194087f706e9..30a9468808caa9cb44a0cdce35993d4a17f88e23 100644
--- a/source/blender/imbuf/IMB_imbuf_types.h
+++ b/source/blender/imbuf/IMB_imbuf_types.h
@@ -67,7 +67,7 @@ typedef struct DDSData {
  */
 
 /* ibuf->ftype flag, main image types */
-/* Warning: Keep explicit value assignements here, this file is included in areas where not all format defines
+/* Warning: Keep explicit value assignments here, this file is included in areas where not all format defines
  *          are set (e.g. intern/dds only get WITH_DDS, even if TIFF, HDR etc are also defined). See T46524. */
 enum eImbTypes {
 	IMB_FTYPE_PNG       = 1,
@@ -254,7 +254,7 @@ typedef struct ImBuf {
 #define IB_tilecache		(1 << 11)
 #define IB_alphamode_premul	(1 << 12)  /* indicates whether image on disk have premul alpha */
 #define IB_alphamode_detect	(1 << 13)  /* if this flag is set, alpha mode would be guessed from file */
-#define IB_ignore_alpha		(1 << 14)  /* ignore alpha on load and substitude it with 1.0f */
+#define IB_ignore_alpha		(1 << 14)  /* ignore alpha on load and substitute it with 1.0f */
 #define IB_thumbnail		(1 << 15)
 #define IB_multiview		(1 << 16)
 
diff --git a/source/blender/imbuf/intern/anim_movie.c b/source/blender/imbuf/intern/anim_movie.c
index 9ab2ee7dd2183707425dc6897227065e8f68faaf..89ae32ee2b3c56ff5f243bb8ec673865fd34966f 100644
--- a/source/blender/imbuf/intern/anim_movie.c
+++ b/source/blender/imbuf/intern/anim_movie.c
@@ -1269,7 +1269,7 @@ static ImBuf *anim_getnew(struct anim *anim)
 #ifdef WITH_AVI
 		case ANIM_AVI:
 			if (startavi(anim)) {
-				printf("couldnt start avi\n");
+				printf("couldn't start avi\n");
 				return (NULL);
 			}
 			ibuf = IMB_allocImBuf(anim->x, anim->y, 24, 0);
diff --git a/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp b/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp
index 8e49dba5e337e4806e150216146236c03f505add..9dc48fc10c87569a5a55e8bdf7c5c45d036c06c4 100644
--- a/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp
+++ b/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp
@@ -1394,7 +1394,7 @@ uint DirectDrawSurface::mipmapSize(uint mipmap) const
 	}
 	else if (header.pf.flags & DDPF_RGB || (header.pf.flags & DDPF_LUMINANCE))
 	{
-		uint pitch = computePitch(w, header.pf.bitcount, 8); // Asuming 8 bit alignment, which is the same D3DX expects.
+		uint pitch = computePitch(w, header.pf.bitcount, 8); // Assuming 8 bit alignment, which is the same D3DX expects.
 
 		return pitch * h * d;
 	}
diff --git a/source/blender/imbuf/intern/moviecache.c b/source/blender/imbuf/intern/moviecache.c
index daf062f5499a9bce4c0d5e045c1abeffec1e5b6a..2a650a0c63aac7465563e27604dfa13a9f1d5ba3 100644
--- a/source/blender/imbuf/intern/moviecache.c
+++ b/source/blender/imbuf/intern/moviecache.c
@@ -380,7 +380,7 @@ static void do_moviecache_put(MovieCache *cache, void *userkey, ImBuf *ibuf, boo
 	if (need_lock)
 		BLI_mutex_unlock(&limitor_lock);
 
-	/* cache limiter can't remove unused keys which points to destoryed values */
+	/* cache limiter can't remove unused keys which points to destroyed values */
 	check_unused_keys(cache);
 
 	if (cache->points) {
diff --git a/source/blender/imbuf/intern/openexr/openexr_api.cpp b/source/blender/imbuf/intern/openexr/openexr_api.cpp
index a52ae75e87b4df611ed6df4079d3e4303a9b00a4..e8e6e0576ed0e56f8623ba5d4651a145c17969b0 100644
--- a/source/blender/imbuf/intern/openexr/openexr_api.cpp
+++ b/source/blender/imbuf/intern/openexr/openexr_api.cpp
@@ -1021,7 +1021,7 @@ void IMB_exr_write_channels(void *handle)
 		}
 
 		for (echan = (ExrChannel *)data->channels.first; echan; echan = echan->next) {
-			/* Writting starts from last scanline, stride negative. */
+			/* Writing starts from last scanline, stride negative. */
 			if (echan->use_half_float) {
 				float *rect = echan->rect;
 				half *cur = current_rect_half;
diff --git a/source/blender/imbuf/intern/targa.c b/source/blender/imbuf/intern/targa.c
index 9d92d146f5007d1908ebee19b84f6f9f6105b1de..b83097c2eaa7c4641167aa715dc4ed386d711a5f 100644
--- a/source/blender/imbuf/intern/targa.c
+++ b/source/blender/imbuf/intern/targa.c
@@ -367,7 +367,7 @@ static void complete_partial_load(struct ImBuf *ibuf, unsigned int *rect)
 		memset(rect, 0, size);
 	}
 	else {
-		/* shouldnt happen */
+		/* shouldn't happen */
 		printf("decodetarga: incomplete file, all pixels written\n");
 	}
 }
diff --git a/source/blender/imbuf/intern/thumbs.c b/source/blender/imbuf/intern/thumbs.c
index ed7bbae6935b314f91c43c29e82a15d1726236cd..bfb7a0418024c3ad012932b550ecac2114c76002 100644
--- a/source/blender/imbuf/intern/thumbs.c
+++ b/source/blender/imbuf/intern/thumbs.c
@@ -362,7 +362,7 @@ static ImBuf *thumb_create_ex(
 		}
 		else {
 			if (ELEM(source, THB_SOURCE_IMAGE, THB_SOURCE_BLEND, THB_SOURCE_FONT)) {
-				/* only load if we didnt give an image */
+				/* only load if we didn't give an image */
 				if (img == NULL) {
 					switch (source) {
 						case THB_SOURCE_IMAGE:
diff --git a/source/blender/modifiers/intern/MOD_array.c b/source/blender/modifiers/intern/MOD_array.c
index a69af265a1792328ea9f35b552763773f35fd8c0..d7f6c263906478033648fab0641bc9a1b2438644 100644
--- a/source/blender/modifiers/intern/MOD_array.c
+++ b/source/blender/modifiers/intern/MOD_array.c
@@ -551,7 +551,7 @@ static DerivedMesh *arrayModifier_doArray(
 	DM_copy_loop_data(dm, result, 0, 0, chunk_nloops);
 	DM_copy_poly_data(dm, result, 0, 0, chunk_npolys);
 
-	/* Subsurf for eg wont have mesh data in the custom data arrays.
+	/* Subsurf for eg won't have mesh data in the custom data arrays.
 	 * now add mvert/medge/mpoly layers. */
 
 	if (!CustomData_has_layer(&dm->vertData, CD_MVERT)) {
diff --git a/source/blender/modifiers/intern/MOD_laplaciandeform.c b/source/blender/modifiers/intern/MOD_laplaciandeform.c
index 81cfa9801359ab30fc4f4b622ef460b2e7b9f728..6f963b7f1a475a78330098655923657419bf9c3a 100644
--- a/source/blender/modifiers/intern/MOD_laplaciandeform.c
+++ b/source/blender/modifiers/intern/MOD_laplaciandeform.c
@@ -67,7 +67,7 @@ typedef struct LaplacianSystem {
 	float (*co)[3];				/* Original vertex coordinates */
 	float (*no)[3];				/* Original vertex normal */
 	float (*delta)[3];			/* Differential Coordinates */
-	unsigned int (*tris)[3];	/* Copy of MLoopTri (tesselation triangle) v1-v3 */
+	unsigned int (*tris)[3];	/* Copy of MLoopTri (tessellation triangle) v1-v3 */
 	int *index_anchors;			/* Static vertex index list */
 	int *unit_verts;			/* Unit vectors of projected edges onto the plane orthogonal to n */
 	int *ringf_indices;			/* Indices of faces per vertex */
@@ -209,7 +209,7 @@ static void createVertRingMap(
 /**
  * This method computes the Laplacian Matrix and Differential Coordinates for all vertex in the mesh.
  * The Linear system is LV = d
- * Where L is Laplacian Matrix, V as the vertexes in Mesh, d is the differential coordinates
+ * Where L is Laplacian Matrix, V as the vertices in Mesh, d is the differential coordinates
  * The Laplacian Matrix is computes as a
  * Lij = sum(Wij) (if i == j)
  * Lij = Wij (if i != j)
@@ -219,7 +219,7 @@ static void createVertRingMap(
  * di = Vi * sum(Wij) - sum(Wij * Vj)
  * Where :
  * di is the Differential Coordinate i
- * sum (Wij) is the sum of all weights between vertex Vi and its vertexes neighbors (Vj)
+ * sum (Wij) is the sum of all weights between vertex Vi and its vertices neighbors (Vj)
  * sum (Wij * Vj) is the sum of the product between vertex neighbor Vj and weight Wij for all neighborhood.
  *
  * This Laplacian Matrix is described in the paper:
diff --git a/source/blender/modifiers/intern/MOD_laplaciansmooth.c b/source/blender/modifiers/intern/MOD_laplaciansmooth.c
index 49b9c4af29cc49d9cbe4e64b7a16be037aa5ba71..7d26e76832dfb84ea3a1a053aeb3b80f37f4bff7 100644
--- a/source/blender/modifiers/intern/MOD_laplaciansmooth.c
+++ b/source/blender/modifiers/intern/MOD_laplaciansmooth.c
@@ -60,8 +60,8 @@ struct BLaplacianSystem {
 	int numLoops;           /* Number of edges*/
 	int numPolys;           /* Number of faces*/
 	int numVerts;           /* Number of verts*/
-	short *numNeFa;         /* Number of neighboors faces around vertice*/
-	short *numNeEd;         /* Number of neighboors Edges around vertice*/
+	short *numNeFa;         /* Number of neighbors faces around vertice*/
+	short *numNeEd;         /* Number of neighbors Edges around vertice*/
 	short *zerola;          /* Is zero area or length*/
 
 	/* Pointers to data*/
@@ -268,7 +268,7 @@ static void init_laplacian_matrix(LaplacianSystem *sys)
 	for (i = 0; i < sys->numEdges; i++) {
 		idv1 = sys->medges[i].v1;
 		idv2 = sys->medges[i].v2;
-		/* if is boundary, apply scale-dependent umbrella operator only with neighboors in boundary */
+		/* if is boundary, apply scale-dependent umbrella operator only with neighbors in boundary */
 		if (sys->numNeEd[idv1] != sys->numNeFa[idv1] && sys->numNeEd[idv2] != sys->numNeFa[idv2]) {
 			sys->vlengths[idv1] += sys->eweights[i];
 			sys->vlengths[idv2] += sys->eweights[i];
diff --git a/source/blender/modifiers/intern/MOD_mirror.c b/source/blender/modifiers/intern/MOD_mirror.c
index 3f6480562d9b44ebe13f192ad68eae0adb4a81b2..aeb28b3ecb0b6ac1afe8dd67cc1e739b8d95d367 100644
--- a/source/blender/modifiers/intern/MOD_mirror.c
+++ b/source/blender/modifiers/intern/MOD_mirror.c
@@ -144,7 +144,7 @@ static DerivedMesh *doMirrorOnAxis(
 	DM_copy_poly_data(dm, result, 0, 0, maxPolys);
 
 
-	/* Subsurf for eg wont have mesh data in the custom data arrays.
+	/* Subsurf for eg won't have mesh data in the custom data arrays.
 	 * now add mvert/medge/mpoly layers. */
 
 	if (!CustomData_has_layer(&dm->vertData, CD_MVERT)) {
diff --git a/source/blender/modifiers/intern/MOD_screw.c b/source/blender/modifiers/intern/MOD_screw.c
index 5c1296d222e82e13a6d8da515750211c96013034..18a551f6daa8468eb44f9dab00685d2d3ee3ce97 100644
--- a/source/blender/modifiers/intern/MOD_screw.c
+++ b/source/blender/modifiers/intern/MOD_screw.c
@@ -57,7 +57,7 @@
 /* used for gathering edge connectivity */
 typedef struct ScrewVertConnect {
 	float dist;  /* distance from the center axis */
-	float co[3]; /* loaction relative to the transformed axis */
+	float co[3]; /* location relative to the transformed axis */
 	float no[3]; /* calc normal of the vertex */
 	unsigned int v[2]; /* 2  verts on either side of this one */
 	MEdge *e[2]; /* edges on either side, a bit of a waste since each edge ref's 2 edges */
@@ -297,7 +297,7 @@ static DerivedMesh *applyModifier(
 
 		/* angle */
 
-#if 0   /* cant incluide this, not predictable enough, though quite fun. */
+#if 0   /* can't include this, not predictable enough, though quite fun. */
 		if (ltmd->flag & MOD_SCREW_OBJECT_ANGLE) {
 			float mtx3_tx[3][3];
 			copy_m3_m4(mtx3_tx, mtx_tx);
@@ -673,7 +673,7 @@ static DerivedMesh *applyModifier(
 							if (tmpf1[ltmd->axis] < vc_tmp->co[ltmd->axis]) { /* best is above */
 								ed_loop_flip = 1;
 							}
-							else { /* best is below or even... in even case we cant know whet  to do. */
+							else { /* best is below or even... in even case we can't know what to do. */
 								ed_loop_flip = 0;
 							}
 
@@ -809,7 +809,7 @@ static DerivedMesh *applyModifier(
 					copy_v3_v3(vc->no, vc->co);
 				}
 
-				/* we wont be looping on this data again so copy normals here */
+				/* we won't be looping on this data again so copy normals here */
 				if ((angle < 0.0f) != do_flip)
 					negate_v3(vc->no);
 
@@ -897,7 +897,7 @@ static DerivedMesh *applyModifier(
 	}
 
 	if (close) {
-		/* last loop of edges, previous loop dosnt account for the last set of edges */
+		/* last loop of edges, previous loop doesn't account for the last set of edges */
 		const unsigned int varray_stride = (step_tot - 1) * totvert;
 
 		for (i = 0; i < totvert; i++) {
diff --git a/source/blender/modifiers/intern/MOD_simpledeform.c b/source/blender/modifiers/intern/MOD_simpledeform.c
index b3982bc5f3e1eb34c51eb2f1906983cba0b551f5..d14310d9199fe9a928cc3423fddb289f50bbf334 100644
--- a/source/blender/modifiers/intern/MOD_simpledeform.c
+++ b/source/blender/modifiers/intern/MOD_simpledeform.c
@@ -50,7 +50,7 @@
 
 #define BEND_EPS 0.000001f
 
-/* Re-maps the indicies for X Y Z by shifting them up and wrapping, such that
+/* Re-maps the indices for X Y Z by shifting them up and wrapping, such that
  * X = Y, Y = Z, Z = X (for X axis), and X = Z, Y = X, Z = Y (for Y axis). This
  * exists because the deformations (excluding bend) are based on the Z axis.
  * Having this helps avoid long, drawn out switches. */
@@ -199,7 +199,7 @@ static void SimpleDeformModifier_do(
 	/* This is historically the lock axis, _not_ the deform axis as the name would imply */
 	const int deform_axis = smd->deform_axis;
 	int lock_axis = smd->axis;
-	if (smd->mode == MOD_SIMPLEDEFORM_MODE_BEND) { /* Bend mode shouln't have any lock axis */
+	if (smd->mode == MOD_SIMPLEDEFORM_MODE_BEND) { /* Bend mode shouldn't have any lock axis */
 		lock_axis = 0;
 	}
 	else {
@@ -263,7 +263,7 @@ static void SimpleDeformModifier_do(
 		}
 
 
-		/* SMD values are normalized to the BV, calculate the absolut values */
+		/* SMD values are normalized to the BV, calculate the absolute values */
 		smd_limit[1] = lower + (upper - lower) * smd->limit[1];
 		smd_limit[0] = lower + (upper - lower) * smd->limit[0];
 
diff --git a/source/blender/modifiers/intern/MOD_solidify.c b/source/blender/modifiers/intern/MOD_solidify.c
index 572898c1982ba3d7d7cef87b2bd2b35bf74f1072..8cf288e19ae7506d1e12466c8845e36fac89c4f3 100644
--- a/source/blender/modifiers/intern/MOD_solidify.c
+++ b/source/blender/modifiers/intern/MOD_solidify.c
@@ -813,7 +813,7 @@ static DerivedMesh *applyModifier(
 			mp->flag = mpoly[fidx].flag;
 
 			/* notice we use 'mp->totloop' which is later overwritten,
-			 * we could lookup the original face but theres no point since this is a copy
+			 * we could lookup the original face but there's no point since this is a copy
 			 * and will have the same value, just take care when changing order of assignment */
 			k1 = mpoly[fidx].loopstart + (((edge_order[eidx] - 1) + mp->totloop) % mp->totloop);  /* prev loop */
 			k2 = mpoly[fidx].loopstart +   (edge_order[eidx]);
diff --git a/source/blender/modifiers/intern/MOD_surfacedeform.c b/source/blender/modifiers/intern/MOD_surfacedeform.c
index 95347128ef91dad20f4b2026d2289b987762993b..84e2bf8941da5b4e5bebba3e84f5a371abc630e5 100644
--- a/source/blender/modifiers/intern/MOD_surfacedeform.c
+++ b/source/blender/modifiers/intern/MOD_surfacedeform.c
@@ -1035,7 +1035,7 @@ static bool surfacedeformBind(
 	}
 	else if (data.success == MOD_SDEF_BIND_RESULT_GENERIC_ERR) {
 		/* I know this message is vague, but I could not think of a way
-		 * to explain this whith a reasonably sized message.
+		 * to explain this with a reasonably sized message.
 		 * Though it shouldn't really matter all that much,
 		 * because this is very unlikely to occur */
 		modifier_setError((ModifierData *)smd, "Target contains invalid polygons");
diff --git a/source/blender/modifiers/intern/MOD_weightvgproximity.c b/source/blender/modifiers/intern/MOD_weightvgproximity.c
index 47db0a3371ffcf3d0a3677d67bae46b56618f542..b98036b991338632735972e102e45b8b96023451 100644
--- a/source/blender/modifiers/intern/MOD_weightvgproximity.c
+++ b/source/blender/modifiers/intern/MOD_weightvgproximity.c
@@ -81,7 +81,7 @@ typedef struct Vert2GeomData {
 	float *dist[3];
 } Vert2GeomData;
 
-/* Data which is localized to each computed chunk (i.e. thread-safe, and with continous subset of index range). */
+/* Data which is localized to each computed chunk (i.e. thread-safe, and with continuous subset of index range). */
 typedef struct Vert2GeomDataChunk {
 	/* Read-only data */
 	float last_hit_co[3][3];
diff --git a/source/blender/nodes/shader/node_shader_util.c b/source/blender/nodes/shader/node_shader_util.c
index 3103057cbcf50bfec8c9bb9a8176025ea6bc4475..90b230a280d57cd106d4d46ae972daa1f3ac88e2 100644
--- a/source/blender/nodes/shader/node_shader_util.c
+++ b/source/blender/nodes/shader/node_shader_util.c
@@ -143,7 +143,7 @@ void node_gpu_stack_from_data(struct GPUNodeStack *gs, int type, bNodeStack *ns)
 	memset(gs, 0, sizeof(*gs));
 
 	if (ns == NULL) {
-		/* node_get_stack() will generate NULL bNodeStack pointers for unknown/unsuported types of sockets... */
+		/* node_get_stack() will generate NULL bNodeStack pointers for unknown/unsupported types of sockets... */
 		zero_v4(gs->vec);
 		gs->link = NULL;
 		gs->type = GPU_NONE;
diff --git a/source/blender/python/bmesh/bmesh_py_ops_call.c b/source/blender/python/bmesh/bmesh_py_ops_call.c
index 4dce0dc2a22a8da3a3e6ee3b015dcf3da923b88f..013a22fd56334b37153a8b8aa55f18268427bae7 100644
--- a/source/blender/python/bmesh/bmesh_py_ops_call.c
+++ b/source/blender/python/bmesh/bmesh_py_ops_call.c
@@ -510,7 +510,7 @@ static int bpy_slot_from_py(
 }
 
 /**
- * Use for getting return values from an operator thats already executed.
+ * Use for getting return values from an operator that's already executed.
  *
  * \note Don't throw any exceptions and should always return a valid (PyObject *).
  */
diff --git a/source/blender/python/bmesh/bmesh_py_types.c b/source/blender/python/bmesh/bmesh_py_types.c
index e8474efa31f740f5473116d229eddba5eb9354e5..5bd938ba279ccb878bac3b738093aa625ce0b3cd 100644
--- a/source/blender/python/bmesh/bmesh_py_types.c
+++ b/source/blender/python/bmesh/bmesh_py_types.c
@@ -2453,7 +2453,7 @@ PyDoc_STRVAR(bpy_bmelemseq_index_update_doc,
 "   .. note::\n"
 "\n"
 "      Running this on sequences besides :class:`BMesh.verts`, :class:`BMesh.edges`, :class:`BMesh.faces`\n"
-"      works but wont result in each element having a valid index, insted its order in the sequence will be set.\n"
+"      works but won't result in each element having a valid index, insted its order in the sequence will be set.\n"
 );
 static PyObject *bpy_bmelemseq_index_update(BPy_BMElemSeq *self)
 {
@@ -4050,7 +4050,7 @@ int BPy_BMElem_CheckHType(PyTypeObject *type, const char htype)
 /**
  * Use for error strings only, not thread safe,
  *
- * \return a sting like '(BMVert/BMEdge/BMFace/BMLoop)'
+ * \return a string like '(BMVert/BMEdge/BMFace/BMLoop)'
  */
 char *BPy_BMElem_StringFromHType_ex(const char htype, char ret[32])
 {
diff --git a/source/blender/python/bmesh/bmesh_py_types_meshdata.c b/source/blender/python/bmesh/bmesh_py_types_meshdata.c
index 97e64fd376e32f6f3ddd9d3b4f47e4fec732c610..e4a2cb8fbbc0ed6bdab4aabe9e8376cb615d5114 100644
--- a/source/blender/python/bmesh/bmesh_py_types_meshdata.c
+++ b/source/blender/python/bmesh/bmesh_py_types_meshdata.c
@@ -478,7 +478,7 @@ PyObject *BPy_BMLoopColor_CreatePyObject(struct MLoopCol *data)
  * This type could eventually be used to access lattice weights.
  *
  * \note: Many of blender-api's dict-like-wrappers act like ordered dicts,
- * This is intentional _not_ ordered, the weights can be in any order and it wont matter,
+ * This is intentionally _not_ ordered, the weights can be in any order and it won't matter,
  * the order should not be used in the api in any meaningful way (as with a python dict)
  * only expose as mapping, not a sequence.
  */
diff --git a/source/blender/python/bmesh/bmesh_py_utils.c b/source/blender/python/bmesh/bmesh_py_utils.c
index ca34de219b83d565c28d662424710466a0d00b27..701dd5fbc19d8ae722c63e6e0d0dc10b53748fbc 100644
--- a/source/blender/python/bmesh/bmesh_py_utils.c
+++ b/source/blender/python/bmesh/bmesh_py_utils.c
@@ -438,7 +438,7 @@ PyDoc_STRVAR(bpy_bm_utils_face_split_doc,
 "   :type vert_a: :class:`bmesh.types.BMVert`\n"
 "   :arg vert_b: Second vertex to cut in the face (face must contain the vert).\n"
 "   :type vert_b: :class:`bmesh.types.BMVert`\n"
-"   :arg coords: Optional argument to define points inbetween *vert_a* and *vert_b*.\n"
+"   :arg coords: Optional argument to define points in between *vert_a* and *vert_b*.\n"
 "   :type coords: sequence of float triplets\n"
 "   :arg use_exist: .Use an existing edge if it exists (Only used when *coords* argument is empty or omitted)\n"
 "   :type use_exist: boolean\n"
diff --git a/source/blender/python/intern/bpy_operator.c b/source/blender/python/intern/bpy_operator.c
index 4652da2018c5d479a0dbf3e3aef2c32a4d75cc6d..4183970c9a1229b4f3cba8e5fbd0d91b6a55f684 100644
--- a/source/blender/python/intern/bpy_operator.c
+++ b/source/blender/python/intern/bpy_operator.c
@@ -124,7 +124,7 @@ static PyObject *pyop_poll(PyObject *UNUSED(self), PyObject *args)
 	CTX_py_dict_set(C, (void *)context_dict);
 	Py_XINCREF(context_dict); /* so we done loose it */
 
-	/* main purpose of thsi function */
+	/* main purpose of this function */
 	ret = WM_operator_poll_context((bContext *)C, ot, context) ? Py_True : Py_False;
 
 	/* restore with original context dict, probably NULL but need this for nested operator calls */
diff --git a/source/blender/python/mathutils/mathutils.c b/source/blender/python/mathutils/mathutils.c
index 0c365ad192c5aa23dcb7336da24263796cb913a3..a3a4e7f313ba8a5eb56470c9d38f75cfdce16606 100644
--- a/source/blender/python/mathutils/mathutils.c
+++ b/source/blender/python/mathutils/mathutils.c
@@ -405,7 +405,7 @@ int EXPP_VectorsAreEqual(const float *vecA, const float *vecB, int size, int flo
 }
 
 #ifndef MATH_STANDALONE
-/* dynstr as python string utility funcions, frees 'ds'! */
+/* dynstr as python string utility functions, frees 'ds'! */
 PyObject *mathutils_dynstr_to_py(struct DynStr *ds)
 {
 	const int ds_len = BLI_dynstr_get_len(ds); /* space for \0 */
diff --git a/source/blender/python/mathutils/mathutils.h b/source/blender/python/mathutils/mathutils.h
index b151ba7280dc8843ab80dc2fd6e2b6982353df56..286dd9f075012b5c502c1723b4e43a0380f0e10b 100644
--- a/source/blender/python/mathutils/mathutils.h
+++ b/source/blender/python/mathutils/mathutils.h
@@ -170,7 +170,7 @@ Py_hash_t mathutils_array_hash(const float *float_array, size_t array_len);
 int column_vector_multiplication(float rvec[4], VectorObject *vec, MatrixObject *mat);
 
 #ifndef MATH_STANDALONE
-/* dynstr as python string utility funcions */
+/* dynstr as python string utility functions */
 PyObject *mathutils_dynstr_to_py(struct DynStr *ds);
 #endif
 
diff --git a/source/blender/python/mathutils/mathutils_Euler.c b/source/blender/python/mathutils/mathutils_Euler.c
index 8be3de422263dbd9a38a050c0917d6e8168e632b..31576c32497423514d58189aa906b9d67430415b 100644
--- a/source/blender/python/mathutils/mathutils_Euler.c
+++ b/source/blender/python/mathutils/mathutils_Euler.c
@@ -161,7 +161,7 @@ PyDoc_STRVAR(Euler_to_matrix_doc,
 "\n"
 "   Return a matrix representation of the euler.\n"
 "\n"
-"   :return: A 3x3 roation matrix representation of the euler.\n"
+"   :return: A 3x3 rotation matrix representation of the euler.\n"
 "   :rtype: :class:`Matrix`\n"
 );
 static PyObject *Euler_to_matrix(EulerObject *self)
diff --git a/source/blender/python/mathutils/mathutils_Matrix.c b/source/blender/python/mathutils/mathutils_Matrix.c
index 70c400f99b8dc9ae3546e5deed11c15b341b2d88..951c094ec40252664bd3e02e0cc94c3ceb46d26a 100644
--- a/source/blender/python/mathutils/mathutils_Matrix.c
+++ b/source/blender/python/mathutils/mathutils_Matrix.c
@@ -2592,7 +2592,7 @@ static int Matrix_translation_set(MatrixObject *self, PyObject *value, void *UNU
 }
 
 PyDoc_STRVAR(Matrix_row_doc,
-"Access the matix by rows (default), (read-only).\n\n:type: Matrix Access"
+"Access the matrix by rows (default), (read-only).\n\n:type: Matrix Access"
 );
 static PyObject *Matrix_row_get(MatrixObject *self, void *UNUSED(closure))
 {
@@ -2600,7 +2600,7 @@ static PyObject *Matrix_row_get(MatrixObject *self, void *UNUSED(closure))
 }
 
 PyDoc_STRVAR(Matrix_col_doc,
-"Access the matix by colums, 3x3 and 4x4 only, (read-only).\n\n:type: Matrix Access"
+"Access the matrix by columns, 3x3 and 4x4 only, (read-only).\n\n:type: Matrix Access"
 );
 static PyObject *Matrix_col_get(MatrixObject *self, void *UNUSED(closure))
 {
@@ -2770,7 +2770,7 @@ PyDoc_STRVAR(matrix_doc,
 "   matrices from 2x2 up to 4x4.\n"
 "\n"
 "   :param rows: Sequence of rows.\n"
-"      When ommitted, a 4x4 identity matrix is constructed.\n"
+"      When omitted, a 4x4 identity matrix is constructed.\n"
 "   :type rows: 2d number sequence\n"
 );
 PyTypeObject matrix_Type = {
diff --git a/source/blender/python/mathutils/mathutils_bvhtree.c b/source/blender/python/mathutils/mathutils_bvhtree.c
index c044cc5496530caefeaf66c953d5b94d9f7d5310..36727fb91aed14ab8b810421343b7da0596b368a 100644
--- a/source/blender/python/mathutils/mathutils_bvhtree.c
+++ b/source/blender/python/mathutils/mathutils_bvhtree.c
@@ -579,7 +579,7 @@ PyDoc_STRVAR(py_bvhtree_overlap_doc,
 "\n"
 "   Find overlapping indices between 2 trees.\n"
 "\n"
-"   :arg other_tree: Other tree to preform overlap test on.\n"
+"   :arg other_tree: Other tree to perform overlap test on.\n"
 "   :type other_tree: :class:`BVHTree`\n"
 "   :return: Returns a list of unique index pairs,"
 "      the first index referencing this tree, the second referencing the **other_tree**.\n"