 					if (computeNormals)
 						fillNormalsData(indices, normalsStream, xyzStream, triangles);
 					
-					if (!hasNormals)
+					if (!hasNormals && normalsStream != null)
 						pushVertexStreamInList(streamId, normalsStream);
 					if (!hasTangents && tangentsStream != normalsStream)
 						pushVertexStreamInList(streamId, tangentsStream);

				var tx 	: Number 	= coef * (v1v2 * (x0 - x2) - v0v2 * (x1 - x2));
				var ty 	: Number 	= coef * (v1v2 * (y0 - y2) - v0v2 * (y1 - y2));
				var tz 	: Number 	= coef * (v1v2 * (z0 - z2) - v0v2 * (z1 - z2));
				var mag	: Number	= Math.sqrt(tx * tx + ty * ty + tz * tz);
				
				if (mag != 0.)
				{
					tx /= mag;
					ty /= mag;
					tz /= mag;
				}
				
				ii = i0 * tangentsVertexSize + tangentsOffset;
				tangentsData.position = ii;
				var tx0 : Number = tx + tangentsData.readFloat();
				var ty0 : Number = ty + tangentsData.readFloat();
				var tz0 : Number = ty + tangentsData.readFloat();
				
				tangentsData.position = ii;
				tangentsData.writeFloat(tx0);

				tangentsData.position = ii;
				var tx2 : Number = tx + tangentsData.readFloat();
				var ty2 : Number = ty + tangentsData.readFloat();
				var tz2 : Number = tz + tangentsData.readFloat();
				
				tangentsData.position = ii;
				tangentsData.writeFloat(tx2);
