diff --git a/CREDITS b/CREDITS
index 774bed5f8fc8259ccf74d83c449af9befc42b0c8..9186c092ea8c5ae64f575b5d7c9f217b4fcc280e 100644
--- a/CREDITS
+++ b/CREDITS
@@ -30,7 +30,7 @@ Ogre Loader, VC2010 fixes and CMake fixes.
 
 - Sebastian Hempel,
 PyAssimp (first version)
-Compile-Bugfixes for mingw, add enviroment for static library support in make.
+Compile-Bugfixes for mingw, add environment for static library support in make.
 
 - Jonathan Pokrass
 Supplied a bugfix concerning the scaling in the md3 loader.
@@ -114,7 +114,7 @@ Contributes a fix for the configure script environment.
 Contributed AssimpDelphi (/port/AssimpDelphi).
 
 - rdb 
-Contributes a bundle of fixes and improvments for the bsp-importer.
+Contributes a bundle of fixes and improvements for the bsp-importer.
 
 - Mick P
 For contributing the De-bone postprocessing step and filing various bug reports.
diff --git a/Readme.md b/Readme.md
index cafcf49216fd40acac0ca0da8b8b90c7da4c002f..0d69023fff79c59bfb17e4d966648868df1e00fd 100644
--- a/Readme.md
+++ b/Readme.md
@@ -100,7 +100,7 @@ Open Asset Import Library is implemented in C++. The directory structure is:
 	/tools		Tools (old assimp viewer, command line `assimp`)
 	/samples	A small number of samples to illustrate possible
                         use cases for Assimp
-	/workspaces	Build enviroments for vc,xcode,... (deprecated,
+	/workspaces	Build environments for vc,xcode,... (deprecated,
 			CMake has superseeded all legacy build options!)
 
 
diff --git a/assimp-config.cmake.in b/assimp-config.cmake.in
index 7e57d79d367ebc6c7a745cd565a08ced65aa5396..e06cc10eee82d5c30bffb85c068f3197310a9d3d 100644
--- a/assimp-config.cmake.in
+++ b/assimp-config.cmake.in
@@ -64,7 +64,7 @@ set( ASSIMP_LIBRARIES ${ASSIMP_LIBRARIES}@CMAKE_DEBUG_POSTFIX@)
 # the boost version assimp was compiled with
 set( ASSIMP_Boost_VERSION "@Boost_MAJOR_VERSION@.@Boost_MINOR_VERSION@")
 
-# for compatibility wiht pkg-config
+# for compatibility with pkg-config
 set(ASSIMP_CFLAGS_OTHER "${ASSIMP_CXX_FLAGS}")
 set(ASSIMP_LDFLAGS_OTHER "${ASSIMP_LINK_FLAGS}")
 
diff --git a/code/3DSLoader.cpp b/code/3DSLoader.cpp
index 2c55ba9779bc3a8db067236436c659d16449a5a7..f6ade56a3d24568d3766f0efbcd24e3d61ab6e1c 100644
--- a/code/3DSLoader.cpp
+++ b/code/3DSLoader.cpp
@@ -197,7 +197,7 @@ void Discreet3DSImporter::InternReadFile( const std::string& pFile,
         ComputeNormalsWithSmoothingsGroups<D3DS::Face>(*i);
     }
 
-    // Replace all occurences of the default material with a
+    // Replace all occurrences of the default material with a
     // valid material. Generate it if no material containing
     // DEFAULT in its name has been found in the file
     ReplaceDefaultMaterial();
diff --git a/code/ACLoader.cpp b/code/ACLoader.cpp
index f84027501c5184fc853f8d13cc979966aaad4d9b..4607d3536a14469b2f7e00a72060c3f2b31197b4 100644
--- a/code/ACLoader.cpp
+++ b/code/ACLoader.cpp
@@ -884,7 +884,7 @@ void AC3DImporter::InternReadFile( const std::string& pFile,
     // copy meshes
     if (meshes.empty())
     {
-        throw DeadlyImportError("An unknown error occured during converting");
+        throw DeadlyImportError("An unknown error occurred during converting");
     }
     pScene->mNumMeshes = (unsigned int)meshes.size();
     pScene->mMeshes = new aiMesh*[pScene->mNumMeshes];
diff --git a/code/ASEParser.h b/code/ASEParser.h
index e962ea15ef377960e6ceee5a52b939c165102fc0..0a893147286870e738ec700bdbf3d65bb314d1d2 100644
--- a/code/ASEParser.h
+++ b/code/ASEParser.h
@@ -604,7 +604,7 @@ private:
     //! \param out Output string
     //! \param szName Name of the enclosing element -> used in error
     //! messages.
-    //! \return false if an error occured
+    //! \return false if an error occurred
     bool ParseString(std::string& out,const char* szName);
 
 public:
diff --git a/code/BVHLoader.cpp b/code/BVHLoader.cpp
index 1f4bc2e71b066a0212cade7b97d81ac08dbdec5a..682ad2a9d9472dd9761d3501869daa241cb919bf 100644
--- a/code/BVHLoader.cpp
+++ b/code/BVHLoader.cpp
@@ -368,7 +368,7 @@ void BVHLoader::ReadMotion( aiScene* /*pScene*/)
 // Retrieves the next token
 std::string BVHLoader::GetNextToken()
 {
-    // skip any preceeding whitespace
+    // skip any preceding whitespace
     while( mReader != mBuffer.end())
     {
         if( !isspace( *mReader))
diff --git a/code/BaseImporter.cpp b/code/BaseImporter.cpp
index d58c30b2f96fba726a4b96ba2ba7f764ed659493..daed1c4ca7c7143b91588acaee2561c9616ff5fd 100644
--- a/code/BaseImporter.cpp
+++ b/code/BaseImporter.cpp
@@ -336,7 +336,7 @@ void BaseImporter::ConvertToUTF8(std::vector<char>& data)
     // UTF 32 BE with BOM
     if(*((uint32_t*)&data.front()) == 0xFFFE0000) {
 
-        // swap the endianess ..
+        // swap the endianness ..
         for(uint32_t* p = (uint32_t*)&data.front(), *end = (uint32_t*)&data.back(); p <= end; ++p) {
             AI_SWAP4P(p);
         }
@@ -367,7 +367,7 @@ void BaseImporter::ConvertToUTF8(std::vector<char>& data)
     // UTF 16 BE with BOM
     if(*((uint16_t*)&data.front()) == 0xFFFE) {
 
-        // swap the endianess ..
+        // swap the endianness ..
         for(uint16_t* p = (uint16_t*)&data.front(), *end = (uint16_t*)&data.back(); p <= end; ++p) {
             ByteSwap::Swap2(p);
         }
@@ -534,7 +534,7 @@ BatchLoader::~BatchLoader()
 
         delete (*it).scene;
     }
-    data->pImporter->SetIOHandler(NULL); /* get pointer back into our posession */
+    data->pImporter->SetIOHandler(NULL); /* get pointer back into our possession */
     delete data->pImporter;
     delete data;
 }
diff --git a/code/BaseImporter.h b/code/BaseImporter.h
index 75e1fdb001eb334cd5eec69fe2a2a1872ed8cd26..2d47508f5f167aac9adb56f58d2d286292fab459 100644
--- a/code/BaseImporter.h
+++ b/code/BaseImporter.h
@@ -176,8 +176,8 @@ public:
         );
 
     // -------------------------------------------------------------------
-    /** Returns the error description of the last error that occured.
-     * @return A description of the last error that occured. An empty
+    /** Returns the error description of the last error that occurred.
+     * @return A description of the last error that occurred. An empty
      * string if there was no error.
      */
     const std::string& GetErrorText() const {
diff --git a/code/CSMLoader.cpp b/code/CSMLoader.cpp
index 064c82dd2b3a8e1cca5b99121d70314f92f58dc7..34beeec09d705ea78d7f27050c48136603c55f93 100644
--- a/code/CSMLoader.cpp
+++ b/code/CSMLoader.cpp
@@ -227,7 +227,7 @@ void CSMImporter::InternReadFile( const std::string& pFile,
 
                         // read x,y,z
                         if(!SkipSpacesAndLineEnd(&buffer))
-                            throw DeadlyImportError("CSM: Unexpected EOF occured reading sample x coord");
+                            throw DeadlyImportError("CSM: Unexpected EOF occurred reading sample x coord");
 
                         if (TokenMatchI(buffer, "DROPOUT", 7))  {
                             // seems this is invalid marker data; at least the doc says it's possible
@@ -239,11 +239,11 @@ void CSMImporter::InternReadFile( const std::string& pFile,
                             buffer = fast_atoreal_move<float>(buffer, (float&)sub->mValue.x);
 
                             if(!SkipSpacesAndLineEnd(&buffer))
-                                throw DeadlyImportError("CSM: Unexpected EOF occured reading sample y coord");
+                                throw DeadlyImportError("CSM: Unexpected EOF occurred reading sample y coord");
                             buffer = fast_atoreal_move<float>(buffer, (float&)sub->mValue.y);
 
                             if(!SkipSpacesAndLineEnd(&buffer))
-                                throw DeadlyImportError("CSM: Unexpected EOF occured reading sample z coord");
+                                throw DeadlyImportError("CSM: Unexpected EOF occurred reading sample z coord");
                             buffer = fast_atoreal_move<float>(buffer, (float&)sub->mValue.z);
 
                             ++s->mNumPositionKeys;
diff --git a/code/ColladaExporter.cpp b/code/ColladaExporter.cpp
index dcf82a564bcc959577f77aa347aa3c807d591148..c743606c7616e5e0e785c876eef9fb3f06b79b46 100644
--- a/code/ColladaExporter.cpp
+++ b/code/ColladaExporter.cpp
@@ -872,7 +872,7 @@ void ColladaExporter::WriteGeometry( size_t pIndex)
         mOutput << startstr << "</lines>" << endstr;
     }
 
-    // triangle - dont use it, because compatibility problems
+    // triangle - don't use it, because compatibility problems
 
     // polygons
     if (countPoly)
@@ -1041,7 +1041,7 @@ void ColladaExporter::WriteNode(aiNode* pNode)
     PushTag();
 
     // write transformation - we can directly put the matrix there
-    // TODO: (thom) decompose into scale - rot - quad to allow adressing it by animations afterwards
+    // TODO: (thom) decompose into scale - rot - quad to allow addressing it by animations afterwards
     const aiMatrix4x4& mat = pNode->mTransformation;
     mOutput << startstr << "<matrix>";
     mOutput << mat.a1 << " " << mat.a2 << " " << mat.a3 << " " << mat.a4 << " ";
diff --git a/code/ColladaLoader.cpp b/code/ColladaLoader.cpp
index b10a5a2483bb0b35a45eb465184b3e5461d3d012..e3a697929b037195cf1f804ce072768457507780 100644
--- a/code/ColladaLoader.cpp
+++ b/code/ColladaLoader.cpp
@@ -663,7 +663,7 @@ aiMesh* ColladaLoader::CreateMesh( const ColladaParser& pParser, const Collada::
         // joint vertex_weight name list - should refer to the same list as the joint names above. If not, report and reconsider
         const Collada::Accessor& weightNamesAcc = pParser.ResolveLibraryReference( pParser.mAccessorLibrary, pSrcController->mWeightInputJoints.mAccessor);
         if( &weightNamesAcc != &jointNamesAcc)
-            throw DeadlyImportError( "Temporary implementational lazyness. If you read this, please report to the author.");
+            throw DeadlyImportError( "Temporary implementational laziness. If you read this, please report to the author.");
         // vertex weights
         const Collada::Accessor& weightsAcc = pParser.ResolveLibraryReference( pParser.mAccessorLibrary, pSrcController->mWeightInputWeights.mAccessor);
         const Collada::Data& weights = pParser.ResolveLibraryReference( pParser.mDataLibrary, weightsAcc.mSource);
@@ -1148,7 +1148,7 @@ void ColladaLoader::CreateAnimation( aiScene* pScene, const ColladaParser& pPars
               // Calculate resulting transformation
               aiMatrix4x4 mat = pParser.CalculateResultTransform( transforms);
 
-              // out of lazyness: we store the time in matrix.d4
+              // out of laziness: we store the time in matrix.d4
               mat.d4 = time;
               resultTrafos.push_back( mat);
 
@@ -1294,7 +1294,7 @@ void ColladaLoader::AddTexture ( aiMaterial& mat, const ColladaParser& pParser,
         _AI_MATKEY_TEXBLEND_BASE, type, idx);
 
     // UV source index ... if we didn't resolve the mapping, it is actually just
-    // a guess but it works in most cases. We search for the frst occurence of a
+    // a guess but it works in most cases. We search for the frst occurrence of a
     // number in the channel name. We assume it is the zero-based index into the
     // UV channel array of all corresponding meshes. It could also be one-based
     // for some exporters, but we won't care of it unless someone complains about.
diff --git a/code/ColladaParser.cpp b/code/ColladaParser.cpp
index f620f7acb68dbccafdd9dad2088ae7bc4c73b8c6..bccac5f79550b0fa2a1656a575f0d51b626b4952 100644
--- a/code/ColladaParser.cpp
+++ b/code/ColladaParser.cpp
@@ -616,7 +616,7 @@ void ColladaParser::ReadControllerLibrary()
         {
             if( IsElement( "controller"))
             {
-                // read ID. Ask the spec if it's neccessary or optional... you might be surprised.
+                // read ID. Ask the spec if it's necessary or optional... you might be surprised.
                 int attrID = GetAttribute( "id");
                 std::string id = mReader->getAttributeValue( attrID);
 
@@ -2282,7 +2282,7 @@ size_t ColladaParser::ReadPrimitives( Mesh* pMesh, std::vector<InputChannel>& pP
     if( expectedPointCount > 0)
         indices.reserve( expectedPointCount * numOffsets);
 
-    if (pNumPrimitives > 0) // It is possible to not contain any indicies
+    if (pNumPrimitives > 0) // It is possible to not contain any indices
     {
         const char* content = GetTextContent();
         while( *content != 0)
@@ -2317,7 +2317,7 @@ size_t ColladaParser::ReadPrimitives( Mesh* pMesh, std::vector<InputChannel>& pP
 
         // find accessor
         input.mResolved = &ResolveLibraryReference( mAccessorLibrary, input.mAccessor);
-        // resolve accessor's data pointer as well, if neccessary
+        // resolve accessor's data pointer as well, if necessary
         const Accessor* acc = input.mResolved;
         if( !acc->mData)
             acc->mData = &ResolveLibraryReference( mDataLibrary, acc->mSource);
@@ -2340,7 +2340,7 @@ size_t ColladaParser::ReadPrimitives( Mesh* pMesh, std::vector<InputChannel>& pP
 
         // find accessor
         input.mResolved = &ResolveLibraryReference( mAccessorLibrary, input.mAccessor);
-        // resolve accessor's data pointer as well, if neccessary
+        // resolve accessor's data pointer as well, if necessary
         const Accessor* acc = input.mResolved;
         if( !acc->mData)
             acc->mData = &ResolveLibraryReference( mDataLibrary, acc->mSource);
@@ -2876,7 +2876,7 @@ void ColladaParser::ReadScene()
         if( mReader->getNodeType() == irr::io::EXN_ELEMENT) {
             if( IsElement( "instance_visual_scene"))
             {
-                // should be the first and only occurence
+                // should be the first and only occurrence
                 if( mRootNode)
                     ThrowException( "Invalid scene containing multiple root nodes in <instance_visual_scene> element");
 
diff --git a/code/DXFLoader.cpp b/code/DXFLoader.cpp
index 2f0f944e8b6c23c781f9a6c3ef61cedb0091d4cf..f21ea15fbc005e4e6f4ebe42b3848325951b4175 100644
--- a/code/DXFLoader.cpp
+++ b/code/DXFLoader.cpp
@@ -175,7 +175,7 @@ void DXFImporter::InternReadFile( const std::string& pFile,
         }
 
         // skip unneeded sections entirely to avoid any problems with them
-        // alltogether.
+        // altogether.
         else if (reader.Is(2,"CLASSES") || reader.Is(2,"TABLES")) {
             SkipSection(reader);
             continue;
diff --git a/code/FBXBinaryTokenizer.cpp b/code/FBXBinaryTokenizer.cpp
index fdb5c28dfd463bab28e294e8108505ae10743bb8..aaa63d4aaee8e9ab9453dde9d82ec58800d5d321 100644
--- a/code/FBXBinaryTokenizer.cpp
+++ b/code/FBXBinaryTokenizer.cpp
@@ -191,7 +191,7 @@ void ReadData(const char*& sbegin_out, const char*& send_out, const char* input,
 
         // 32 bit int
     case 'I':
-        // <- fall thru
+        // <- fall through
 
         // float
     case 'F':
diff --git a/code/FBXMeshGeometry.cpp b/code/FBXMeshGeometry.cpp
index 49bdca92a53826f26889dc13ea027f5c2de821f3..5b60e462315c2182885ca128e8c48f2c7c69f91f 100644
--- a/code/FBXMeshGeometry.cpp
+++ b/code/FBXMeshGeometry.cpp
@@ -354,7 +354,7 @@ void MeshGeometry::ReadVertexData(const std::string& type, int index, const Scop
         // sometimes, there will be only negative entries. Drop the material
         // layer in such a case (I guess it means a default material should
         // be used). This is what the converter would do anyway, and it
-        // avoids loosing the material if there are more material layers
+        // avoids losing the material if there are more material layers
         // coming of which at least one contains actual data (did observe
         // that with one test file).
         const size_t count_neg = std::count_if(temp_materials.begin(),temp_materials.end(),std::bind2nd(std::less<int>(),0));
diff --git a/code/FBXUtil.h b/code/FBXUtil.h
index 331a769ffdc1afc26c1e1b1015d1188ab2c66a58..bd41834b0b26d180baa448ac091e9b10fbe87fce 100644
--- a/code/FBXUtil.h
+++ b/code/FBXUtil.h
@@ -74,7 +74,7 @@ const char* TokenTypeString(TokenType t);
  *  @param prefix Message prefix to be preprended to the location info.
  *  @param text Message text
  *  @param line Line index, 1-based
- *  @param column Colum index, 1-based
+ *  @param column Column index, 1-based
  *  @return A string of the following format: {prefix} (offset 0x{offset}) {text}*/
 std::string AddOffset(const std::string& prefix, const std::string& text, unsigned int offset);
 
@@ -84,7 +84,7 @@ std::string AddOffset(const std::string& prefix, const std::string& text, unsign
  *  @param prefix Message prefix to be preprended to the location info.
  *  @param text Message text
  *  @param line Line index, 1-based
- *  @param column Colum index, 1-based
+ *  @param column Column index, 1-based
  *  @return A string of the following format: {prefix} (line {line}, col {column}) {text}*/
 std::string AddLineAndColumn(const std::string& prefix, const std::string& text, unsigned int line, unsigned int column);
 
diff --git a/code/FileSystemFilter.h b/code/FileSystemFilter.h
index fecdaab824dd3e0c3b5fd0c110f64ff07819e685..3370589d6e288fc60091c923e911483d13441071 100644
--- a/code/FileSystemFilter.h
+++ b/code/FileSystemFilter.h
@@ -40,7 +40,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 /** @file FileSystemFilter.h
  *  Implements a filter system to filter calls to Exists() and Open()
- *  in order to improve the sucess rate of file opening ...
+ *  in order to improve the success rate of file opening ...
  */
 #ifndef AI_FILESYSTEMFILTER_H_INC
 #define AI_FILESYSTEMFILTER_H_INC
diff --git a/code/Importer.cpp b/code/Importer.cpp
index b7a4cb555314761f970826595543d7e993d7db01..faf0924a0e3d8d7aaaba7aeb3e6b17bd4d5a6ef0 100644
--- a/code/Importer.cpp
+++ b/code/Importer.cpp
@@ -604,7 +604,7 @@ const aiScene* Importer::ReadFile( const char* _pFile, unsigned int pFlags)
             FreeScene();
         }
 
-        // First check if the file is accessable at all
+        // First check if the file is accessible at all
         if( !pimpl->mIOHandler->Exists( pFile)) {
 
             pimpl->mErrorString = "Unable to open file \"" + pFile + "\".";
@@ -723,7 +723,7 @@ const aiScene* Importer::ReadFile( const char* _pFile, unsigned int pFlags)
     catch (std::exception &e)
     {
 #if (defined _MSC_VER) &&   (defined _CPPRTTI)
-        // if we have RTTI get the full name of the exception that occured
+        // if we have RTTI get the full name of the exception that occurred
         pimpl->mErrorString = std::string(typeid( e ).name()) + ": " + e.what();
 #else
         pimpl->mErrorString = std::string("std::exception: ") + e.what();
diff --git a/code/Importer.h b/code/Importer.h
index 7e21327ceb703dc172d3ec1e7ef8a74ecbde2e16..bb1050c56a03ebf9e3022e0dc4e9f5802f67aeb9 100644
--- a/code/Importer.h
+++ b/code/Importer.h
@@ -166,7 +166,7 @@ public:
 
     // -------------------------------------------------------------------
     /** Construct a batch loader from a given IO system to be used
-     *  to acess external files */
+     *  to access external files */
     explicit BatchLoader(IOSystem* pIO);
     ~BatchLoader();
 
diff --git a/code/JoinVerticesProcess.cpp b/code/JoinVerticesProcess.cpp
index b822b527c34bc04a2833c302e09f4b6157bb9a7c..9cd34e1d060bcc4143096a0d75b2d018d20f30de 100644
--- a/code/JoinVerticesProcess.cpp
+++ b/code/JoinVerticesProcess.cpp
@@ -192,8 +192,8 @@ int JoinVerticesProcess::ProcessMesh( aiMesh* pMesh, unsigned int meshIndex)
             // Position mismatch is impossible - the vertex finder already discarded all non-matching positions
 
             // We just test the other attributes even if they're not present in the mesh.
-            // In this case they're initialized to 0 so the comparision succeeds.
-            // By this method the non-present attributes are effectively ignored in the comparision.
+            // In this case they're initialized to 0 so the comparison succeeds.
+            // By this method the non-present attributes are effectively ignored in the comparison.
             if( (uv.normal - v.normal).SquareLength() > squareEpsilon)
                 continue;
             if( (uv.texcoords[0] - v.texcoords[0]).SquareLength() > squareEpsilon)
@@ -265,7 +265,7 @@ int JoinVerticesProcess::ProcessMesh( aiMesh* pMesh, unsigned int meshIndex)
         }
         else
         {
-            // no unique vertex matches it upto now -> so add it
+            // no unique vertex matches it up to now -> so add it
             replaceIndex[a] = (unsigned int)uniqueVertices.size();
             uniqueVertices.push_back( v);
         }
diff --git a/code/LWOBLoader.cpp b/code/LWOBLoader.cpp
index 5f2519d8dee7c34b76d7946f3138ff3f0b9565a5..6396752944b112c2b263f9c82794e6018467bdae 100644
--- a/code/LWOBLoader.cpp
+++ b/code/LWOBLoader.cpp
@@ -112,7 +112,7 @@ void LWOImporter::LoadLWOBPolygons(unsigned int length)
     LE_NCONST uint16_t* const end   = (LE_NCONST uint16_t*)(mFileBuffer+length);
     LE_NCONST uint16_t* cursor      = (LE_NCONST uint16_t*)mFileBuffer;
 
-    // perform endianess conversions
+    // perform endianness conversions
 #ifndef AI_BUILD_BIG_ENDIAN
     while (cursor < end)ByteSwap::Swap2(cursor++);
     cursor = (LE_NCONST uint16_t*)mFileBuffer;
@@ -256,8 +256,8 @@ void LWOImporter::LoadLWOBSurface(unsigned int size)
     LWO::Texture* pTex = NULL;
 
     GetS0(surf.mName,size);
-    bool runnning = true;
-    while (runnning)    {
+    bool running = true;
+    while (running)    {
         if (mFileBuffer + 6 >= end)
             break;
 
diff --git a/code/LWOLoader.cpp b/code/LWOLoader.cpp
index 86846cf6229ac5e51a53c6d844d7e8d6c80333fc..53b6b14fb7ccd89223394b4ccf1cd1fe0c970e36 100644
--- a/code/LWOLoader.cpp
+++ b/code/LWOLoader.cpp
@@ -765,7 +765,7 @@ void LWOImporter::LoadLWOPoints(unsigned int length)
     }
     else mCurLayer->mTempPoints.resize( regularSize );
 
-    // perform endianess conversions
+    // perform endianness conversions
 #ifndef AI_BUILD_BIG_ENDIAN
     for (unsigned int i = 0; i < length>>2;++i)
         ByteSwap::Swap4( mFileBuffer + (i << 2));
diff --git a/code/LimitBoneWeightsProcess.h b/code/LimitBoneWeightsProcess.h
index 2f07bfebaef68ce3ba104acc48e16a07dfac618b..f6907cf26d9f509da80ed604e83be9e2fdc9b1eb 100644
--- a/code/LimitBoneWeightsProcess.h
+++ b/code/LimitBoneWeightsProcess.h
@@ -125,7 +125,7 @@ public:
             mWeight = pWeight;
         }
 
-        /** Comparision operator to sort bone weights by descending weight */
+        /** Comparison operator to sort bone weights by descending weight */
         bool operator < (const Weight& pWeight) const
         {
             return mWeight > pWeight.mWeight;
diff --git a/code/MD3FileData.h b/code/MD3FileData.h
index 97043bc115cdcde42ffac2c0f1adf61a67b65ab4..57dbf990b9c28e3cbc4b087aaed24ba7ac22d7b2 100644
--- a/code/MD3FileData.h
+++ b/code/MD3FileData.h
@@ -305,7 +305,7 @@ inline void Vec3NormalToLatLng( const aiVector3D& p_vIn, uint16_t& p_iOut )
         b &= 0xff;
 
         ((unsigned char*)&p_iOut)[0] = b;   // longitude
-        ((unsigned char*)&p_iOut)[1] = a;   // lattitude
+        ((unsigned char*)&p_iOut)[1] = a;   // latitude
     }
 }
 
diff --git a/code/MD3Loader.cpp b/code/MD3Loader.cpp
index c8b58f593dacc1fdd079fd04d5db9313ab0390ca..7f1b32577f6cc7027522d36c6b66ba337b745a6b 100644
--- a/code/MD3Loader.cpp
+++ b/code/MD3Loader.cpp
@@ -763,7 +763,7 @@ void MD3Importer::InternReadFile( const std::string& pFile,
 
     pcHeader = (BE_NCONST MD3::Header*)mBuffer;
 
-    // Ensure correct endianess
+    // Ensure correct endianness
 #ifdef AI_BUILD_BIG_ENDIAN
 
     AI_SWAP4(pcHeader->VERSION);
@@ -832,7 +832,7 @@ void MD3Importer::InternReadFile( const std::string& pFile,
     unsigned int iNumMaterials = 0;
     while (iNum-- > 0)  {
 
-        // Ensure correct endianess
+        // Ensure correct endianness
 #ifdef AI_BUILD_BIG_ENDIAN
 
         AI_SWAP4(pcSurfaces->FLAGS);
@@ -965,7 +965,7 @@ void MD3Importer::InternReadFile( const std::string& pFile,
         pScene->mMaterials[iNumMaterials] = (aiMaterial*)pcHelper;
         pcMesh->mMaterialIndex = iNumMaterials++;
 
-            // Ensure correct endianess
+            // Ensure correct endianness
 #ifdef AI_BUILD_BIG_ENDIAN
 
         for (uint32_t i = 0; i < pcSurfaces->NUM_VERTICES;++i)  {
diff --git a/code/MD5Parser.cpp b/code/MD5Parser.cpp
index 101c52d1dd3498d4e64c3512a6f08cf3ee4c96df..cf8d5a9f51be06d08106ccf98df5f05602bf2e21 100644
--- a/code/MD5Parser.cpp
+++ b/code/MD5Parser.cpp
@@ -406,7 +406,7 @@ MD5AnimParser::MD5AnimParser(SectionList& mSections)
                 desc.mValues.reserve(mNumAnimatedComponents);
             }
 
-            // now read all elements (continous list of floats)
+            // now read all elements (continuous list of floats)
             for (ElementList::const_iterator eit = (*iter).mElements.begin(), eitEnd = (*iter).mElements.end(); eit != eitEnd; ++eit){
                 const char* sz = (*eit).szStart;
                 while (SkipSpacesAndLineEnd(&sz))   {
diff --git a/code/MD5Parser.h b/code/MD5Parser.h
index bbc844d5728573a0ca6cb1ab284716462cd2449a..5d5e608bb8396eac6672a25fcc0476a9079972de 100644
--- a/code/MD5Parser.h
+++ b/code/MD5Parser.h
@@ -370,14 +370,14 @@ public:
     // -------------------------------------------------------------------
     /** Report a specific error message and throw an exception
      *  @param error Error message to be reported
-     *  @param line Index of the line where the error occured
+     *  @param line Index of the line where the error occurred
      */
     AI_WONT_RETURN static void ReportError (const char* error, unsigned int line) AI_WONT_RETURN_SUFFIX;
 
     // -------------------------------------------------------------------
     /** Report a specific warning
      *  @param warn Warn message to be reported
-     *  @param line Index of the line where the error occured
+     *  @param line Index of the line where the error occurred
      */
     static void ReportWarning (const char* warn, unsigned int line);
 
diff --git a/code/MDLLoader.cpp b/code/MDLLoader.cpp
index 50373f401ed833bd8d87fb1f3b584eaf504c5c94..07973104338e7c26cbe84b9afbc76d1949de2f6c 100644
--- a/code/MDLLoader.cpp
+++ b/code/MDLLoader.cpp
@@ -1290,7 +1290,7 @@ void MDLImporter::SortByMaterials_3DGS_MDL7(
                     iMatIndex2 = iNumMaterials-1;
                 }
 
-                // do a slow seach in the list ...
+                // do a slow search in the list ...
                 iNum = 0;
                 bool bFound = false;
                 for (std::vector<MDL::IntMaterial_MDL7>::iterator i =  avMats.begin();i != avMats.end();++i,++iNum){
diff --git a/code/MDLMaterialLoader.cpp b/code/MDLMaterialLoader.cpp
index 455f1e6d00bf376b83d68e335656543f727a5ba1..2499eae6424941987bec1737717b4b63ee81454c 100644
--- a/code/MDLMaterialLoader.cpp
+++ b/code/MDLMaterialLoader.cpp
@@ -60,7 +60,7 @@ using namespace Assimp;
 static aiTexel* const bad_texel = reinterpret_cast<aiTexel*>(SIZE_MAX);
 
 // ------------------------------------------------------------------------------------------------
-// Find a suitable pallette file or take teh default one
+// Find a suitable pallette file or take the default one
 void MDLImporter::SearchPalette(const unsigned char** pszColorMap)
 {
     // now try to find the color map in the current directory
@@ -129,7 +129,7 @@ aiColor4D MDLImporter::ReplaceTextureWithColor(const aiTexture* pcTexture)
 // Read a texture from a MDL3 file
 void MDLImporter::CreateTextureARGB8_3DGS_MDL3(const unsigned char* szData)
 {
-    const MDL::Header *pcHeader = (const MDL::Header*)mBuffer;  //the endianess is allready corrected in the InternReadFile_3DGS_MDL345 function
+    const MDL::Header *pcHeader = (const MDL::Header*)mBuffer;  //the endianness is already corrected in the InternReadFile_3DGS_MDL345 function
 
     VALIDATE_FILE_SIZE(szData + pcHeader->skinwidth *
         pcHeader->skinheight);
@@ -178,7 +178,7 @@ void MDLImporter::CreateTexture_3DGS_MDL4(const unsigned char* szData,
 {
     ai_assert(NULL != piSkip);
 
-    const MDL::Header *pcHeader = (const MDL::Header*)mBuffer;  //the endianess is allready corrected in the InternReadFile_3DGS_MDL345 function
+    const MDL::Header *pcHeader = (const MDL::Header*)mBuffer;  //the endianness is already corrected in the InternReadFile_3DGS_MDL345 function
 
     if (iType == 1 || iType > 3)
     {
diff --git a/code/NDOLoader.cpp b/code/NDOLoader.cpp
index 36cc2323b0f0b2bb5ef7e48bc9d10cc770102987..08a151717396fb99748352f6d2a9484733aa02a1 100644
--- a/code/NDOLoader.cpp
+++ b/code/NDOLoader.cpp
@@ -262,7 +262,7 @@ void NDOImporter::InternReadFile( const std::string& pFile,
         aiFace* faces = mesh->mFaces = new aiFace[mesh->mNumFaces=face_table.size()];
 
         vertices.clear();
-        vertices.reserve(4 * face_table.size()); // arbitrarily choosen
+        vertices.reserve(4 * face_table.size()); // arbitrarily chosen
         for_each(FaceTable::value_type& v, face_table) {
             indices.clear();
 
diff --git a/code/PlyParser.cpp b/code/PlyParser.cpp
index 5b6a35e5f652d2eb7a76515e6aeda3ea84167874..9ea7279157596aa847b9b7e5ce2fa4420e06c534 100644
--- a/code/PlyParser.cpp
+++ b/code/PlyParser.cpp
@@ -388,7 +388,7 @@ bool PLY::Element::ParseElement (const char* pCur,
 
     if (!SkipSpaces(&pCur))return false;
 
-    //parse the number of occurences of this element
+    //parse the number of occurrences of this element
     pOut->NumOccur = strtoul10(pCur,&pCur);
 
     // go to the next line
@@ -854,7 +854,7 @@ bool PLY::PropertyInstance::ParseValueBinary(
         out->iUInt = (uint32_t)*((uint32_t*)pCur);
         pCur += 4;
 
-        // Swap endianess
+        // Swap endianness
         if (p_bBE)ByteSwap::Swap((int32_t*)&out->iUInt);
         break;
 
@@ -862,7 +862,7 @@ bool PLY::PropertyInstance::ParseValueBinary(
         {
         uint16_t i = *((uint16_t*)pCur);
 
-        // Swap endianess
+        // Swap endianness
         if (p_bBE)ByteSwap::Swap(&i);
         out->iUInt = (uint32_t)i;
         pCur += 2;
@@ -880,7 +880,7 @@ bool PLY::PropertyInstance::ParseValueBinary(
         out->iInt = *((int32_t*)pCur);
         pCur += 4;
 
-        // Swap endianess
+        // Swap endianness
         if (p_bBE)ByteSwap::Swap(&out->iInt);
         break;
 
@@ -888,7 +888,7 @@ bool PLY::PropertyInstance::ParseValueBinary(
         {
         int16_t i = *((int16_t*)pCur);
 
-        // Swap endianess
+        // Swap endianness
         if (p_bBE)ByteSwap::Swap(&i);
         out->iInt = (int32_t)i;
         pCur += 2;
@@ -904,7 +904,7 @@ bool PLY::PropertyInstance::ParseValueBinary(
         {
         out->fFloat = *((float*)pCur);
 
-        // Swap endianess
+        // Swap endianness
         if (p_bBE)ByteSwap::Swap((int32_t*)&out->fFloat);
         pCur += 4;
         break;
@@ -913,7 +913,7 @@ bool PLY::PropertyInstance::ParseValueBinary(
         {
         out->fDouble = *((double*)pCur);
 
-        // Swap endianess
+        // Swap endianness
         if (p_bBE)ByteSwap::Swap((int64_t*)&out->fDouble);
         pCur += 8;
         break;
diff --git a/code/SMDLoader.h b/code/SMDLoader.h
index 14155674af1bd934dacd09dc527de815b2cd9790..ab6ab3d9a0342d15326d87229400bbbdfcf23753 100644
--- a/code/SMDLoader.h
+++ b/code/SMDLoader.h
@@ -39,7 +39,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
 /** @file  SMDLoader.h
- *  @brief Defintion of the Valve SMD file format
+ *  @brief Definition of the Valve SMD file format
  */
 
 #ifndef AI_SMDLOADER_H_INCLUDED
diff --git a/code/STLLoader.cpp b/code/STLLoader.cpp
index 8c8dbfc2e0015f1ddb8a40a28c341eaa66ce9231..28645ac587a2cbbef95f1c40ee4069c22b40d850 100644
--- a/code/STLLoader.cpp
+++ b/code/STLLoader.cpp
@@ -406,7 +406,7 @@ bool STLImporter::LoadBinaryFile()
     }
     bool bIsMaterialise = false;
 
-    // search for an occurence of "COLOR=" in the header
+    // search for an occurrence of "COLOR=" in the header
     const unsigned char* sz2 = (const unsigned char*)mBuffer;
     const unsigned char* const szEnd = sz2+80;
     while (sz2 < szEnd) {
diff --git a/code/SceneCombiner.h b/code/SceneCombiner.h
index fe73ad4f51ca0096b0ae3a7a4d1cb05c1c3c4c27..ddb4e8f7d92f9bed9880611732ce312dc3674140 100644
--- a/code/SceneCombiner.h
+++ b/code/SceneCombiner.h
@@ -273,7 +273,7 @@ public:
     /** Merges two or more materials
      *
      *  The materials should be complementary as much as possible. In case
-     *  of a property present in different materials, the first occurence
+     *  of a property present in different materials, the first occurrence
      *  is used.
      *
      *  @param dest Destination material. Must be empty.
@@ -323,7 +323,7 @@ public:
      *    the master graph), a scene is attached to the root of the master
      *    graph (as an additional child node)
      *  @duplicates List of duplicates. If elem[n] == n the scene is not
-     *    a duplicate. Otherwise elem[n] links scene n to its first occurence.
+     *    a duplicate. Otherwise elem[n] links scene n to its first occurrence.
      */
     static void AttachToGraph ( aiScene* master,
         std::vector<NodeAttachmentInfo>& srcList);
diff --git a/code/SpatialSort.cpp b/code/SpatialSort.cpp
index 2cf179a92b4e8dc4535f3fe6b02c31aaac804e9c..c536af1b55f31c54951b6932450960de40a84393 100644
--- a/code/SpatialSort.cpp
+++ b/code/SpatialSort.cpp
@@ -234,7 +234,7 @@ namespace {
 } // namespace
 
 // ------------------------------------------------------------------------------------------------
-// Fills an array with indices of all positions indentical to the given position. In opposite to
+// Fills an array with indices of all positions identical to the given position. In opposite to
 // FindPositions(), not an epsilon is used but a (very low) tolerance of four floating-point units.
 void SpatialSort::FindIdenticalPositions( const aiVector3D& pPosition,
     std::vector<unsigned int>& poResults) const
diff --git a/code/SpatialSort.h b/code/SpatialSort.h
index e4fb4a0c35104d53d279785fe50ec875946120bd..983a26c4bc015ade4645ae7789b03c3c9ca29136 100644
--- a/code/SpatialSort.h
+++ b/code/SpatialSort.h
@@ -121,7 +121,7 @@ public:
         std::vector<unsigned int>& poResults) const;
 
     // ------------------------------------------------------------------------------------
-    /** Fills an array with indices of all positions indentical to the given position. In
+    /** Fills an array with indices of all positions identical to the given position. In
      *  opposite to FindPositions(), not an epsilon is used but a (very low) tolerance of
      *  four floating-point units.
      * @param pPosition The position to look for vertices.
diff --git a/code/StandardShapes.h b/code/StandardShapes.h
index 211422c5d9c06754ff12672ab605fea8847f24a2..e310bfd5ef6dbd5a7300b4d5155e56aff47077b8 100644
--- a/code/StandardShapes.h
+++ b/code/StandardShapes.h
@@ -182,7 +182,7 @@ public:
     // ----------------------------------------------------------------
     /** @brief Generates a flat circle
      *
-     *  The circle is constructed in the planed formed by the x,z
+     *  The circle is constructed in the planned formed by the x,z
      *  axes of the cartesian coordinate system.
      *
      *  @param radius Radius of the circle
diff --git a/code/StreamReader.h b/code/StreamReader.h
index c7acf0af86ff7b2460ceb0ea972681dcbd2796d7..0d411e884f2ce4df9649b35f1bcff065709f5fc6 100644
--- a/code/StreamReader.h
+++ b/code/StreamReader.h
@@ -40,7 +40,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
 /** @file Defines the StreamReader class which reads data from
- *  a binary stream with a well-defined endianess. */
+ *  a binary stream with a well-defined endianness. */
 
 #ifndef AI_STREAMREADER_H_INCLUDED
 #define AI_STREAMREADER_H_INCLUDED
@@ -57,9 +57,9 @@ namespace Assimp {
 /** Wrapper class around IOStream to allow for consistent reading of binary data in both
  *  little and big endian format. Don't attempt to instance the template directly. Use
  *  StreamReaderLE to read from a little-endian stream and StreamReaderBE to read from a
- *  BE stream. The class expects that the endianess of any input data is known at
+ *  BE stream. The class expects that the endianness of any input data is known at
  *  compile-time, which should usually be true (#BaseImporter::ConvertToUTF8 implements
- *  runtime endianess conversions for text files).
+ *  runtime endianness conversions for text files).
  *
  *  XXX switch from unsigned int for size types to size_t? or ptrdiff_t?*/
 // --------------------------------------------------------------------------------------------
@@ -79,7 +79,7 @@ public:
 
 
     // ---------------------------------------------------------------------
-    /** Construction from a given stream with a well-defined endianess.
+    /** Construction from a given stream with a well-defined endianness.
      *
      *  The StreamReader holds a permanent strong reference to the
      *  stream, which is released upon destruction.
@@ -88,7 +88,7 @@ public:
      *    reads from the current position to the end of the stream.
      *  @param le If @c RuntimeSwitch is true: specifies whether the
      *    stream is in little endian byte order. Otherwise the
-     *    endianess information is contained in the @c SwapEndianess
+     *    endianness information is contained in the @c SwapEndianess
      *    template parameter and this parameter is meaningless.  */
     StreamReader(boost::shared_ptr<IOStream> stream, bool le = false)
         : stream(stream)
diff --git a/code/StreamWriter.h b/code/StreamWriter.h
index f25736171003776a2ac78a4ad64022dfea4898e2..9f5c09cec2af4fa1c26d9d1e34fcbe158b2c8766 100644
--- a/code/StreamWriter.h
+++ b/code/StreamWriter.h
@@ -40,7 +40,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
 /** @file Defines the StreamWriter class which writes data to
- *  a binary stream with a well-defined endianess. */
+ *  a binary stream with a well-defined endianness. */
 
 #ifndef AI_STREAMWRITER_H_INCLUDED
 #define AI_STREAMWRITER_H_INCLUDED
@@ -57,7 +57,7 @@ namespace Assimp {
 /** Wrapper class around IOStream to allow for consistent writing of binary data in both
  *  little and big endian format. Don't attempt to instance the template directly. Use
  *  StreamWriterLE to read from a little-endian stream and StreamWriterBE to read from a
- *  BE stream. Alternatively, there is StreamWriterAny if the endianess of the output
+ *  BE stream. Alternatively, there is StreamWriterAny if the endianness of the output
  *  stream is to be determined at runtime.
  */
 // --------------------------------------------------------------------------------------------
@@ -71,7 +71,7 @@ class StreamWriter
 public:
 
     // ---------------------------------------------------------------------
-    /** Construction from a given stream with a well-defined endianess.
+    /** Construction from a given stream with a well-defined endianness.
      *
      *  The StreamReader holds a permanent strong reference to the
      *  stream, which is released upon destruction.
@@ -79,7 +79,7 @@ public:
           continues at the current position of the stream cursor.
      *  @param le If @c RuntimeSwitch is true: specifies whether the
      *    stream is in little endian byte order. Otherwise the
-     *    endianess information is defined by the @c SwapEndianess
+     *    endianness information is defined by the @c SwapEndianess
      *    template parameter and this parameter is meaningless.  */
     StreamWriter(boost::shared_ptr<IOStream> stream, bool le = false)
         : stream(stream)
diff --git a/code/TerragenLoader.cpp b/code/TerragenLoader.cpp
index 4e711fc5e8329c293c0026b4d1a264f46df8aa19..b0e450d41e6da92239e8cb71ff3d39f91f9ffbad 100644
--- a/code/TerragenLoader.cpp
+++ b/code/TerragenLoader.cpp
@@ -126,7 +126,7 @@ void TerragenImporter::InternReadFile( const std::string& pFile,
     if( file == NULL)
         throw DeadlyImportError( "Failed to open TERRAGEN TERRAIN file " + pFile + ".");
 
-    // Construct a stream reader to read all data in the correct endianess
+    // Construct a stream reader to read all data in the correct endianness
     StreamReaderLE reader(file);
     if(reader.GetRemainingSize() < 16)
         throw DeadlyImportError( "TER: file is too small" );
diff --git a/code/TextureTransform.cpp b/code/TextureTransform.cpp
index 9436c773ac07b68237899aa0fed7d582d9312726..948ec013b37af1e3009fd49572e13df18aeabf28 100644
--- a/code/TextureTransform.cpp
+++ b/code/TextureTransform.cpp
@@ -554,7 +554,7 @@ void TextureTransformStep::Execute( aiScene* pScene)
         }
     }
 
-    // Print some detailled statistics into the log
+    // Print some detailed statistics into the log
     if (!DefaultLogger::isNullLogger()) {
 
         if (transformedChannels)    {
diff --git a/code/XFileImporter.cpp b/code/XFileImporter.cpp
index b63ac4a1d6b0230b675799d873690fddc134fb3a..e39ea658cb1baff321b6a59aeec202c57c61f7b9 100644
--- a/code/XFileImporter.cpp
+++ b/code/XFileImporter.cpp
@@ -668,7 +668,7 @@ void XFileImporter::ConvertMaterials( aiScene* pScene, std::vector<XFile::Materi
                     sz[sExt] = '\0';
                 }
 
-                // convert to lower case for easier comparision
+                // convert to lower case for easier comparison
                 for( unsigned int c = 0; c < sz.length(); c++)
                     if( isalpha( sz[c]))
                         sz[c] = tolower( sz[c]);
diff --git a/code/XFileParser.cpp b/code/XFileParser.cpp
index 8ba03ac6aec7d10a16a3e6416560ee879ab5f1ac..52cffc0590a5106fbc4eaf308c04e38a6250a974 100644
--- a/code/XFileParser.cpp
+++ b/code/XFileParser.cpp
@@ -1298,7 +1298,7 @@ unsigned int XFileParser::ReadInt()
 
         // TODO: consider using strtol10 instead???
 
-        // check preceeding minus sign
+        // check preceding minus sign
         bool isNegative = false;
         if( *P == '-')
         {
@@ -1453,7 +1453,7 @@ AI_WONT_RETURN void XFileParser::ThrowException( const std::string& pText)
 void XFileParser::FilterHierarchy( XFile::Node* pNode)
 {
     // if the node has just a single unnamed child containing a mesh, remove
-    // the anonymous node inbetween. The 3DSMax kwXport plugin seems to produce this
+    // the anonymous node between. The 3DSMax kwXport plugin seems to produce this
     // mess in some cases
     if( pNode->mChildren.size() == 1 && pNode->mMeshes.empty() )
     {
diff --git a/doc/dox.h b/doc/dox.h
index cd921445340913134d8feffbf289e465d3fdb0cb..1e36749bbeb3a41661a2165e44141303ca838012 100644
--- a/doc/dox.h
+++ b/doc/dox.h
@@ -98,7 +98,7 @@ more work. Both ways are described at the @link install Installation page. @endl
 
 When you're done integrating the library into your IDE / project, you can now start using it. There are two separate
 interfaces by which you can access the library: a C++ interface and a C interface using flat functions. While the former
-is easier to handle, the latter also forms a point where other programming languages can connect to. Upto the moment, though,
+is easier to handle, the latter also forms a point where other programming languages can connect to. Up to the moment, though,
 there are no bindings for any other language provided. Have a look at the @link usage Usage page @endlink for a detailed explanation and code examples.
 
 @section main_data Data Structures
@@ -137,7 +137,7 @@ If you develop at Visual Studio 2005 or 2008, you can simply use the pre-built l
 Extract all files to a place of your choice. A directory called "assimp" will be created there. Add the assimp/include path
 to your include paths (Menu-&gt;Extras-&gt;Options-&gt;Projects and Solutions-&gt;VC++ Directories-&gt;Include files)
 and the assimp/lib/&lt;Compiler&gt; path to your linker paths (Menu-&gt;Extras-&gt;Options-&gt;Projects and Solutions-&gt;VC++ Directories-&gt;Library files).
-This is neccessary only once to setup all paths inside you IDE.
+This is necessary only once to setup all paths inside you IDE.
 
 To use the library in your C++ project you have to include either &lt;assimp/Importer.hpp&gt; or &lt;assimp/cimport.h&gt; plus some others starting with &lt;types.h&gt;.
 If you set up your IDE correctly the compiler should be able to find the files. Then you have to add the linker library to your
@@ -310,7 +310,7 @@ bool DoTheImportThing( const std::string& pFile)
 @endcode
 
 What exactly is read from the files and how you interpret it is described at the @ref data page. @endlink The post processing steps that the assimp library can apply to the
-imported data are listed at #aiPostProcessSteps. See the @ref pp Post proccessing page for more details.
+imported data are listed at #aiPostProcessSteps. See the @ref pp Post processing page for more details.
 
 Note that the aiScene data structure returned is declared 'const'. Yes, you can get rid of
 these 5 letters with a simple cast. Yes, you may do that. No, it's not recommended (and it's
@@ -660,7 +660,7 @@ an index into this array.
 
 An aiMesh is defined by a series of data channels. The presence of these data channels is defined
 by the contents of the imported file: by default there are only those data channels present in the mesh
-that were also found in the file. The only channels guarenteed to be always present are aiMesh::mVertices
+that were also found in the file. The only channels guaranteed to be always present are aiMesh::mVertices
 and aiMesh::mFaces. You can test for the presence of other data by testing the pointers against NULL
 or use the helper functions provided by aiMesh. You may also specify several post processing flags
 at Importer::ReadFile() to let assimp calculate or recalculate additional data channels for you.
@@ -753,7 +753,7 @@ both Direct3D and OpenGL (swizzling the order of the color components might be n
 RGBA8888 has been chosen because it is well-known, easy to use and natively
 supported by nearly all graphics APIs.
 <br>
-<b>2)</b> This applies if aiTexture::mHeight == 0 is fullfilled. Then, texture is stored in a
+<b>2)</b> This applies if aiTexture::mHeight == 0 is fulfilled. Then, texture is stored in a
 "compressed" format such as DDS or PNG. The term "compressed" does not mean that the
 texture data must actually be compressed, however the texture was found in the
 model file as if it was stored in a separate file on the harddisk. Appropriate
@@ -780,7 +780,7 @@ presence of certain properties in a material and retrieve their values.
 
 @section mat_tex Textures
 
-Textures are organized in stacks, each stack being evaluated independently. The final color value from a particular texture stack is used in the shading equation. For example, the computed color value of the diffuse texture stack (aiTextureType_DIFFUSE) is multipled with the amount of incoming diffuse light to obtain the final diffuse color of a pixel.
+Textures are organized in stacks, each stack being evaluated independently. The final color value from a particular texture stack is used in the shading equation. For example, the computed color value of the diffuse texture stack (aiTextureType_DIFFUSE) is multiplied with the amount of incoming diffuse light to obtain the final diffuse color of a pixel.
 
 @code
 
@@ -938,7 +938,7 @@ All material key constants start with 'AI_MATKEY' (it's an ugly macro for histor
     <td><tt>TEXBLEND(t,n)</tt></td>
     <td>float</td>
     <td>n/a</td>
-	<td>Defines the strength the n'th texture on the stack 't'. All color components (rgb) are multipled with this factor *before* any further processing is done.</td>
+	<td>Defines the strength the n'th texture on the stack 't'. All color components (rgb) are multiplied with this factor *before* any further processing is done.</td>
 	<td>-</td>
   </tr>
 
@@ -1466,7 +1466,7 @@ The skeleton file must have the same name as the mesh file, e.g. fish.mesh.xml a
 The material file can have the same name as the mesh file (if the file is model.mesh or model.mesh.xml the
 loader will try to load model.material),
 or you can use Importer::Importer::SetPropertyString(AI_CONFIG_IMPORT_OGRE_MATERIAL_FILE, "materiafile.material")
-to specify the name of the material file. This is especially usefull if multiply materials a stored in a single file.
+to specify the name of the material file. This is especially useful if multiply materials a stored in a single file.
 The importer will first try to load the material with the same name as the mesh and only if this can't be open try
 to load the alternate material file. The default material filename is "Scene.material".
 
@@ -1574,7 +1574,7 @@ But the general rule of thumb is <i>be strict in what you write and tolerant in
 
 <ul>
 <li>
-Take care of endianess issues! Assimp importers mostly support big-endian platforms, which define the <tt>AI_BUILD_BIG_ENDIAN</tt> constant.
+Take care of endianness issues! Assimp importers mostly support big-endian platforms, which define the <tt>AI_BUILD_BIG_ENDIAN</tt> constant.
 See the next section for a list of utilities to simplify this task.
 </li>
 <li>
diff --git a/include/assimp/Compiler/pstdint.h b/include/assimp/Compiler/pstdint.h
index 3692a8aef175fc78d22239c78a5b682fe4dfd1bd..22b6c235e81f2b83d464f672c84fb4279ea18aaa 100644
--- a/include/assimp/Compiler/pstdint.h
+++ b/include/assimp/Compiler/pstdint.h
@@ -73,7 +73,7 @@
  *       include stdint.h.  The hope is that one or the other can be
  *       used with no real difference.
  *
- *    5) In the current verison, if your platform can't represent
+ *    5) In the current version, if your platform can't represent
  *       int32_t, int16_t and int8_t, it just dumps out with a compiler
  *       error.
  *
diff --git a/include/assimp/Importer.hpp b/include/assimp/Importer.hpp
index 10c62e55d8a9849eaa73e5becffe6ab57da764d1..4c01367ed489f6605938ec436bb21f2f91b12eab 100644
--- a/include/assimp/Importer.hpp
+++ b/include/assimp/Importer.hpp
@@ -464,7 +464,7 @@ public:
     /** @brief Reads the given file and returns its contents if successful.
      *
      * This function is provided for backward compatibility.
-     * See the const char* version for detailled docs.
+     * See the const char* version for detailed docs.
      * @see ReadFile(const char*, pFlags)  */
     const aiScene* ReadFile(
         const std::string& pFile,
diff --git a/include/assimp/anim.h b/include/assimp/anim.h
index 0acb8453207d39ce90adf33c114815fca17a67dc..af59417551e208270527a7bf2136047776686613 100644
--- a/include/assimp/anim.h
+++ b/include/assimp/anim.h
@@ -409,7 +409,7 @@ namespace Assimp {
 // ---------------------------------------------------------------------------
 /** @brief CPP-API: Utility class to simplify interpolations of various data types.
  *
- *  The type of interpolation is choosen automatically depending on the
+ *  The type of interpolation is chosen automatically depending on the
  *  types of the arguments. */
 template <typename T>
 struct Interpolator
diff --git a/include/assimp/material.h b/include/assimp/material.h
index 6c222a040d693918264bf0f7cecc19f36df0515a..87d27c56961980d7fe012aef6449e06bd65fdab9 100644
--- a/include/assimp/material.h
+++ b/include/assimp/material.h
@@ -103,7 +103,7 @@ enum aiTextureOp
 // ---------------------------------------------------------------------------
 /** @brief Defines how UV coordinates outside the [0...1] range are handled.
  *
- *  Commonly refered to as 'wrapping mode'.
+ *  Commonly referred to as 'wrapping mode'.
  */
 enum aiTextureMapMode
 {
diff --git a/include/assimp/mesh.h b/include/assimp/mesh.h
index f112bea0fcc75e84ee635a5c6b934bd2c8211744..a76a2d72b30b19022a2348cfbca4889f5c6fa23f 100644
--- a/include/assimp/mesh.h
+++ b/include/assimp/mesh.h
@@ -522,7 +522,7 @@ struct aiMesh
     * mixed primitive types (i.e. lines and triangles) may have
     * normals, but the normals for vertices that are only referenced by
     * point or line primitives are undefined and set to qNaN.  See
-    * the #mNormals member for a detailled discussion of qNaNs.
+    * the #mNormals member for a detailed discussion of qNaNs.
     * @note If the mesh contains tangents, it automatically also
     * contains bitangents.
     */
diff --git a/include/assimp/port/AndroidJNI/AndroidJNIIOSystem.h b/include/assimp/port/AndroidJNI/AndroidJNIIOSystem.h
index 727aaa7c6087b55c3ad8070f8adeb32d6e11c57e..6f806f922c3feaedd4fa95f96dfa89fe3ca98a29 100644
--- a/include/assimp/port/AndroidJNI/AndroidJNIIOSystem.h
+++ b/include/assimp/port/AndroidJNI/AndroidJNIIOSystem.h
@@ -39,7 +39,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
 /** @file Android implementation of IOSystem using the standard C file functions.
- * Aimed to ease the acces to android assets */
+ * Aimed to ease the access to android assets */
 
 #if __ANDROID__ and __ANDROID_API__ > 9 and defined(AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT)
 #ifndef AI_ANDROIDJNIIOSYSTEM_H_INC
diff --git a/port/PyAssimp/pyassimp/errors.py b/port/PyAssimp/pyassimp/errors.py
index 37db3c08afac975034453887f51d24326fa7118d..9d776860f858c80202335fa501e283b4a536fdb5 100644
--- a/port/PyAssimp/pyassimp/errors.py
+++ b/port/PyAssimp/pyassimp/errors.py
@@ -6,6 +6,6 @@ All possible errors.
 
 class AssimpError(BaseException):
     """
-    If an internal error occures.
+    If an internal error occurs.
     """
     pass
\ No newline at end of file
diff --git a/port/PyAssimp/pyassimp/structs.py b/port/PyAssimp/pyassimp/structs.py
index 39ed8267af5e203fded880abdc90df190a05611f..84fcfb7a08a6a306c9720cbc7a09870a1c957d41 100644
--- a/port/PyAssimp/pyassimp/structs.py
+++ b/port/PyAssimp/pyassimp/structs.py
@@ -568,7 +568,7 @@ class Mesh(Structure):
             # normals, but the normals for vertices that are only referenced by
             # point or line primitives are undefined and set to qNaN.  See
             # the
-            #mNormals member for a detailled discussion of qNaNs.
+            #mNormals member for a detailed discussion of qNaNs.
             # @note If the mesh contains tangents, it automatically also
             # contains bitangents (the bitangent is just the cross product of
             # tangent and normal vectors).
diff --git a/port/dAssimp/assimp/api.d b/port/dAssimp/assimp/api.d
index fcdec1d2967317ee99849e78f3dc7c82ce167864..9399b7f9d3cc1666cd1d0cf28045f6b774a709df 100644
--- a/port/dAssimp/assimp/api.d
+++ b/port/dAssimp/assimp/api.d
@@ -607,7 +607,7 @@ extern ( C ) {
     *       <code>aiGetMaterialTextureCount()</code> can be used to determine
     *       the number of textures in a particular texture stack.
     *    path = Receives the output path. null is not a valid value.
-    *    mapping = Recieves the texture mapping mode to be used.
+    *    mapping = Receives the texture mapping mode to be used.
     *       Pass null if you are not interested in this information.
     *    uvindex = For UV-mapped textures: receives the index of the UV source
     *       channel. Unmodified otherwise. Pass null if you are not interested
diff --git a/port/dAssimp/assimp/material.d b/port/dAssimp/assimp/material.d
index b5af27eae7d51f9d53567d0d136e5987413fb706..e0c480b24a2787535ac056ecc5c877a4ac40690c 100644
--- a/port/dAssimp/assimp/material.d
+++ b/port/dAssimp/assimp/material.d
@@ -110,7 +110,7 @@ extern ( C ) {
     * Defines how UV coordinates outside the <code>[0..1]</code> range are
     * handled.
     *
-    * Commonly refered to as 'wrapping mode'.
+    * Commonly referred to as 'wrapping mode'.
     */
    enum aiTextureMapMode : uint {
       /**
diff --git a/port/dAssimp/assimp/math.d b/port/dAssimp/assimp/math.d
index f63d8e23a800f683b1422d21b40e505665898583..f3cff743f246a1eea55825a36a4924f1f9688181 100644
--- a/port/dAssimp/assimp/math.d
+++ b/port/dAssimp/assimp/math.d
@@ -71,7 +71,7 @@ extern( C ) {
    /**
     * Represents a row-major 3x3 matrix
     *
-    * There is much confusion about matrix layouts (colum vs. row order). This
+    * There is much confusion about matrix layouts (column vs. row order). This
     * is <em>always</em> a row-major matrix, even when using the
     * <code>ConvertToLeftHanded</code> post processing step.
     */
@@ -84,7 +84,7 @@ extern( C ) {
    /**
     * Represents a row-major 3x3 matrix
     *
-    * There is much confusion about matrix layouts (colum vs. row order). This
+    * There is much confusion about matrix layouts (column vs. row order). This
     * is <em>always</em> a row-major matrix, even when using the
     * <code>ConvertToLeftHanded</code> post processing step.
     */
diff --git a/port/dAssimp/assimp/mesh.d b/port/dAssimp/assimp/mesh.d
index 1618f31fc34b8d565796d4c2eb3a414e3622d410..9f20c9a661635adeb2e1172c9c2c8543486ee3a5 100644
--- a/port/dAssimp/assimp/mesh.d
+++ b/port/dAssimp/assimp/mesh.d
@@ -115,7 +115,7 @@ extern ( C ) {
       uint mNumIndices;
 
       /**
-       * Array of the indicies defining the face.
+       * Array of the indices defining the face.
        *
        * The size is given in <code>mNumIndices</code>.
        */
@@ -205,7 +205,7 @@ extern ( C ) {
        *
        * A triangle is a polygon, but in this context, polygon means
        * "all polygons that are not triangles". The <code>Triangulate</code>
-       * post processing step is provided for your convinience, it splits all
+       * post processing step is provided for your convenience, it splits all
        * polygons in triangles (which are much easier to handle).
        */
       POLYGON = 0x8
@@ -403,7 +403,7 @@ extern ( C ) {
       /**
        * The faces the mesh is contstructed from.
        *
-       * Each face referrs to a number of vertices by their indices.
+       * Each face refers to a number of vertices by their indices.
        * This array is always present in a mesh, its size is given
        * in <code>mNumFaces</code>. If the
        * <code>AI_SCENE_FLAGS_NON_VERBOSE_FORMAT</code> is <em>not</em> set,
diff --git a/port/jassimp/jassimp/src/jassimp/AiTextureMapMode.java b/port/jassimp/jassimp/src/jassimp/AiTextureMapMode.java
index f9e86dfc65e1d70f27070c9170d8fb939572d328..df75c58c2203efbeab6c5b53b3660c489123e392 100644
--- a/port/jassimp/jassimp/src/jassimp/AiTextureMapMode.java
+++ b/port/jassimp/jassimp/src/jassimp/AiTextureMapMode.java
@@ -44,7 +44,7 @@ package jassimp;
 /** 
  * Defines how UV coordinates outside the [0...1] range are handled.<p>
  *
- * Commonly refered to as 'wrapping mode'.
+ * Commonly referred to as 'wrapping mode'.
  */
 public enum AiTextureMapMode {
     /** 
diff --git a/port/swig/interface/assimp.i b/port/swig/interface/assimp.i
index 8caf13dfb9968b64a32d550dc0923afbb0632042..a1b1404a0fc69150e4e0935dd5de7da67f42399a 100644
--- a/port/swig/interface/assimp.i
+++ b/port/swig/interface/assimp.i
@@ -10,7 +10,7 @@ namespace Assimp {
 %ignore Importer::GetExtensionList(std::string& szOut);
 %ignore Importer::IsExtensionSupported(const std::string& szExtension);
 
-// These are only neccessary for extending Assimp with custom importers or post
+// These are only necessary for extending Assimp with custom importers or post
 // processing steps, which would require wrapping the internal BaseImporter and
 // BaseProcess classes.
 %ignore Importer::RegisterLoader(BaseImporter* pImp);
diff --git a/samples/DevIL/ChangeLog b/samples/DevIL/ChangeLog
index aeae00053110dc46fbb682cbc06c14153be265b6..eabed1920b4442fce8e00166f0f59bef64171025 100644
--- a/samples/DevIL/ChangeLog
+++ b/samples/DevIL/ChangeLog
@@ -384,7 +384,7 @@
 	* il_jpeg.c:53: Added check for IL_USE_IJL.
 	* il_exr.cpp:319,329: Changed to write functions instead of read.
 	* il_files.c: Added iSetOutputFake.
-	* il_files.c (iSetOutputLump): Added check for NULL to accomodate ilDetermineSize function.
+	* il_files.c (iSetOutputLump): Added check for NULL to accommodate ilDetermineSize function.
 	* il_hdr.c:457: Changed from char* to ILbyte*.
 	* il_icns.h:24,30: Changed from ILbyte to char.
 	* il_size.c: Added #ifdefs for when user has declared IL_NO_XXX.  Changed error to ENUM instead of PARAM.
@@ -410,7 +410,7 @@
 	* il_pic.c (readScanline):294-295: Added check for alpha channel.
 	* il_pic.c: Added ilSetError calls throughout. 
 	* il_sgi.c (iLoadSgiInternal): Fixed bug #1060946 - Removed IL_LUMINANCE_ALPHA filetype.
-	* WindowsTest.cpp:52,53: Changed border size to accomodate Windows Vista/7.
+	* WindowsTest.cpp:52,53: Changed border size to accommodate Windows Vista/7.
 	* il_endian.h:20: Changed to give __BIG_ENDIAN__ a value of 1.  The Google cached page of
 	http://74.125.47.132/search?q=cache:YfSl36C2pAQJ:patch-tracking.debian.net/patch/series/view/devil/1.7.2-1/00_endian_and_ILvoid_fixes.diff+devil+big+endian&hl=en&ct=clnk&cd=11&gl=us&lr=lang_en
 	has this patch (Nov. 24, 2008 cache).
@@ -597,7 +597,7 @@ Up to 2009-01-02 (since 1.7.5 release) Denton Woods <doomwiz@users.sf.net>
 	* Fixed bug in iRegisterLoad (https://sourceforge.net/forum/message.php?msg_id=5973761).
 	* Changed seek functions in il_files.c to return ILint.
 	* Added rpcsal.h and sal.h #includes to ilut.h for DX10.
-	* Added IL_MAX_QUANT_INDICES to use instead of IL_MAX_QUANT_INDEXS (mispelled).
+	* Added IL_MAX_QUANT_INDICES to use instead of IL_MAX_QUANT_INDEXS (misspelled).
 	* Added WBMP support (loading and saving).
 	* EXR files can now be loaded as file streams and lumps.
 	* Changed iNeuQuant to take number of colors in palette.
diff --git a/samples/DevIL/include/IL/config.h b/samples/DevIL/include/IL/config.h
index b9fe5dc0aaa7d134e64f9fcad6809ecf0f0ee0e0..933759038088a63573a3a9cb3689cd3c9c10f30b 100644
--- a/samples/DevIL/include/IL/config.h
+++ b/samples/DevIL/include/IL/config.h
@@ -57,7 +57,7 @@
 
 //
 // sorry just
-// cant get this one to work under windows
+// can't get this one to work under windows
 // have disabled for the now
 //
 // will look at it some more later
diff --git a/samples/DevIL/include/IL/config.h.win b/samples/DevIL/include/IL/config.h.win
index 659f4ca0e33b9f887ac86ef36d7bc297d4cf26f1..0090b9b514ff594584929f3dbf5b106ad1180953 100644
--- a/samples/DevIL/include/IL/config.h.win
+++ b/samples/DevIL/include/IL/config.h.win
@@ -59,7 +59,7 @@
 
 //
 // sorry just
-// cant get this one to work under windows
+// can't get this one to work under windows
 // have disabled for the now
 //
 // will look at it some more later
diff --git a/samples/DevIL/include/IL/ilut_config.h b/samples/DevIL/include/IL/ilut_config.h
index 2b3625b8651fc753fa9c0d87fed3987225cedc1e..bd9cbc694279c0ca696d3c2905b7f19d4c172c4d 100644
--- a/samples/DevIL/include/IL/ilut_config.h
+++ b/samples/DevIL/include/IL/ilut_config.h
@@ -7,7 +7,7 @@
 
 //
 // sorry just
-// cant get this one to work under windows
+// can't get this one to work under windows
 // have disabled for the now
 //
 // will look at it some more later
diff --git a/samples/SimpleAssimpViewX/MyDocument.mm b/samples/SimpleAssimpViewX/MyDocument.mm
index f074126caae997d27b0e7ac2508ff181925d1059..be688a6be26f6fa898cca8c41c923fb6fae51bea 100644
--- a/samples/SimpleAssimpViewX/MyDocument.mm
+++ b/samples/SimpleAssimpViewX/MyDocument.mm
@@ -486,7 +486,7 @@ static CVReturn MyDisplayLinkCallback(CVDisplayLinkRef displayLink,const CVTimeS
             for (unsigned int a = 0; a < nidx; ++a)
             {
                 //                 if(mesh->mFaces[x].mNumIndices != 3)
-                //                     NSLog(@"whoa dont have 3 indices...");
+                //                     NSLog(@"whoa don't have 3 indices...");
                 
                 *indices++ = mesh->mFaces[x].mIndices[a];
             }
diff --git a/samples/SimpleTexturedOpenGL/SimpleTexturedOpenGL/src/model_loading.cpp b/samples/SimpleTexturedOpenGL/SimpleTexturedOpenGL/src/model_loading.cpp
index bac8001523080ca4fa1ae1c97415ad58ecd8860a..98ed43915bb40ed2c37ad38d247f6a29fe458278 100644
--- a/samples/SimpleTexturedOpenGL/SimpleTexturedOpenGL/src/model_loading.cpp
+++ b/samples/SimpleTexturedOpenGL/SimpleTexturedOpenGL/src/model_loading.cpp
@@ -234,14 +234,14 @@ int LoadGLTextures(const aiScene* scene)
 		std::string fileloc = basepath + filename;	/* Loading of image */
 		success = ilLoadImage(fileloc.c_str());
 
-		if (success) /* If no error occured: */
+		if (success) /* If no error occurred: */
 		{
             // Convert every colour component into unsigned byte.If your image contains 
             // alpha channel you can replace IL_RGB with IL_RGBA
             success = ilConvertImage(IL_RGB, IL_UNSIGNED_BYTE);
 			if (!success)
 			{
-				/* Error occured */
+				/* Error occurred */
 				abortGLInit("Couldn't convert image");
 				return -1;
 			}
@@ -264,7 +264,7 @@ int LoadGLTextures(const aiScene* scene)
 		}
 		else
 		{
-			/* Error occured */
+			/* Error occurred */
 			MessageBox(NULL, ("Couldn't load Image: " + fileloc).c_str() , "ERROR", MB_OK | MB_ICONEXCLAMATION);
 		}
 	}
diff --git a/samples/glut/README-win32.txt b/samples/glut/README-win32.txt
index f3c1cbaa518eca81e0f624868b5884bb676a1e80..59bd9504e3e2a1e4433d07c6df035ee7380735ec 100644
--- a/samples/glut/README-win32.txt
+++ b/samples/glut/README-win32.txt
@@ -230,7 +230,7 @@ CHANGES/FIXES:
     (Oct 3, '01)
     x  Fixed bug in getVisualInfoFromString(): visuals not reloaded on 
        display mode change.  Reload visuals each time they are queried.
-       This fixes a problem with Win32 because the list of availabe Visuals
+       This fixes a problem with Win32 because the list of available Visuals
        (Pixelformats) changes after a change in displaymode. The problem 
        occurs when switching to gamemode and back.  Thanks to Michael 
        Wimmer for pointing this out & providing the fix.
@@ -435,7 +435,7 @@ CHANGES/FIXES:
        by the structure that I used in the previous port of GLUT.
        Therefore I decided that it would be best to "get back to
        the roots".  I re-implemented most of glut trying to stick
-       with the structure layed out by Mark.  The result is a much
+       with the structure laid out by Mark.  The result is a much
        more stable version that passes ALL (!) (except overlay)
        the tests provided by Mark.  In addition, this new
        structure will allow future enhancements by Mark to be
@@ -492,7 +492,7 @@ CHANGES/FIXES:
     x  I don't know if this is avoidable.  If you have a tight rendering
        loop, it may be that the processor time is going to be sucked up
        no matter what.  You can add a sleep() to the end of your render
-       loop if you would like to yeild to other processes and you don't
+       loop if you would like to yield to other processes and you don't
        care too much about the speed of your rendering loop.  If you have
        Hardware that supports OpenGL (like a 3Dpro card, or GLint card) 
        then this should be less of a problem, since it won't be rendering
diff --git a/test/models/LWO/LWO2/concrete.source.txt b/test/models/LWO/LWO2/concrete.source.txt
index 792fd1f89669f9bd89c6fd0bfd87de6c536b363c..2904ae998028318a12e3ef07a4eb901ea512eba7 100644
--- a/test/models/LWO/LWO2/concrete.source.txt
+++ b/test/models/LWO/LWO2/concrete.source.txt
@@ -1,2 +1,2 @@
-cgtextures.com - free, even for commercial use. See the licensing conditions and the FAQ the site for mroe details.
+cgtextures.com - free, even for commercial use. See the licensing conditions and the FAQ the site for more details.
 Great source for free textures, btw!
\ No newline at end of file
diff --git a/test/regression/README.txt b/test/regression/README.txt
index aab4c110442350d9602497e5325ee50a1048b39f..3e90a143b25bd8054fe43a370394d6f89ab6095a 100644
--- a/test/regression/README.txt
+++ b/test/regression/README.txt
@@ -72,7 +72,7 @@ makes it reasonably easy to locate the offending field.
 ---------------------------------------------------------------------------------
 As mentioned above, floating-point inaccuracies between differently optimized
 builds are not considered regressions and all float comparisons done by the test
-suite involve an epsilon to accomodate. However compiler settings that allow
+suite involve an epsilon to accommodate. However compiler settings that allow
 compilers to perform non-IEEE754 compliant optimizations can cause arbitrary
 failures in the test suite. Even if the compiler is configured to be IEE754
 comformant, there is lots of code in assimp that leaves the compiler a choice
diff --git a/tools/assimp_view/Display.cpp b/tools/assimp_view/Display.cpp
index 28c1550f3bc0adcdddad800a5c51ae31f7166413..91ea9573b0c138d3f322b6dc94e6d0019bcf97c4 100644
--- a/tools/assimp_view/Display.cpp
+++ b/tools/assimp_view/Display.cpp
@@ -1104,7 +1104,7 @@ int CDisplay::OnSetup(HTREEITEM p_hTreeItem)
         return OnSetupTextureView(pcNew);
     }
 
-    // seach the node list
+    // search the node list
     for (std::vector<NodeInfo>::iterator i =  m_asNodes.begin(); i != m_asNodes.end();++i){
         if (p_hTreeItem == (*i).hTreeItem)  {
             pcNew2 = &(*i);
@@ -1115,7 +1115,7 @@ int CDisplay::OnSetup(HTREEITEM p_hTreeItem)
         return OnSetupNodeView(pcNew2);
     }
 
-    // seach the material list
+    // search the material list
     for (std::vector<MaterialInfo>::iterator i =  m_asMaterials.begin();i != m_asMaterials.end();++i){
         if (p_hTreeItem == (*i).hTreeItem){
             pcNew3 = &(*i);
diff --git a/tools/assimp_view/Material.cpp b/tools/assimp_view/Material.cpp
index 81e342c869d2f5f5e75a72bf59f1d6f3105c1470..14f5f744724d556246b061d38cedb29f131f46f8 100644
--- a/tools/assimp_view/Material.cpp
+++ b/tools/assimp_view/Material.cpp
@@ -605,7 +605,7 @@ void CMaterialManager::HMtoNMIfNecessary(
     *piTextureOut = piTexture;
 
     // Lock the input texture and try to determine its type.
-    // Criterias:
+    // Criteria:
     // - If r,g,b channel are identical it MUST be a height map
     // - If one of the rgb channels is used and the others are empty it
     //   must be a height map, too.
diff --git a/tools/assimp_view/assimp_view.h b/tools/assimp_view/assimp_view.h
index 26bde344ac7b3f951868584ed3cda6af1e7a1a10..bfcc5f12c3fb7aa1a51ac383541be1f6ea381534 100644
--- a/tools/assimp_view/assimp_view.h
+++ b/tools/assimp_view/assimp_view.h
@@ -194,7 +194,7 @@ enum EClickPos
 {
     // The click was inside the inner circle (x,y axis)
     EClickPos_Circle,
-    // The click was inside one of tghe vertical snap-ins
+    // The click was inside one of the vertical snap-ins
     EClickPos_CircleVert,
     // The click was inside onf of the horizontal snap-ins
     EClickPos_CircleHor,
diff --git a/workspaces/Android-NDK/jni/Android.mk b/workspaces/Android-NDK/jni/Android.mk
index 0d9f4981dd3886178e88a3a5bf655df455ac2abf..b4d1da7ef253c097ab82cbc7dd45e4db083c09cc 100755
--- a/workspaces/Android-NDK/jni/Android.mk
+++ b/workspaces/Android-NDK/jni/Android.mk
@@ -21,7 +21,7 @@ LOCAL_CPP_FEATURES := exceptions
 # but next breaks blender and other importer
 # LOCAL_CFLAGS += -std=c++11
   
-# cant be disabled? rudamentary function?
+# can't be disabled? rudamentary function?
 #       -DASSIMP_BUILD_NO_FLIPWINDING_PROCESS  \
 #
 DontBuildProcess = \