--- geos-3.0.0.orig/source/planargraph/DirectedEdge.cpp
+++ geos-3.0.0/source/planargraph/DirectedEdge.cpp
@@ -21,6 +21,7 @@
 #include <cmath>
 #include <sstream>
 #include <vector>
+#include <typeinfo>
 
 using namespace std;
 using namespace geos::geom;
--- geos-3.0.0.orig/source/precision/SimpleGeometryPrecisionReducer.cpp
+++ geos-3.0.0/source/precision/SimpleGeometryPrecisionReducer.cpp
@@ -30,6 +30,7 @@
 #include <geos/geom/LinearRing.h>
 
 #include <vector>
+#include <typeinfo>
 
 using namespace std;
 using namespace geos::geom;
--- geos-3.0.0.orig/source/io/ByteOrderValues.cpp
+++ geos-3.0.0/source/io/ByteOrderValues.cpp
@@ -22,6 +22,7 @@
 #include <geos/util.h>
 
 #include <cassert>
+#include <cstring>
 
 namespace geos {
 namespace io { // geos.io
--- geos-3.0.0.orig/source/io/StringTokenizer.cpp
+++ geos-3.0.0/source/io/StringTokenizer.cpp
@@ -17,6 +17,7 @@
 #include <geos/io/StringTokenizer.h>
 
 #include <string>
+#include <cstdlib>
 
 using namespace std;
 
--- geos-3.0.0.orig/source/operation/buffer/OffsetCurveSetBuilder.cpp
+++ geos-3.0.0/source/operation/buffer/OffsetCurveSetBuilder.cpp
@@ -41,6 +41,7 @@
 #include <vector>
 #include <memory>
 #include <cassert>
+#include <typeinfo>
 
 #ifndef GEOS_DEBUG
 #define GEOS_DEBUG 0
--- geos-3.0.0.orig/source/operation/distance/ConnectedElementPointFilter.cpp
+++ geos-3.0.0/source/operation/distance/ConnectedElementPointFilter.cpp
@@ -20,6 +20,7 @@
 #include <geos/geom/Polygon.h>
 
 #include <vector>
+#include <typeinfo>
 
 using namespace std;
 using namespace geos::geom;
--- geos-3.0.0.orig/source/geomgraph/GeometryGraph.cpp
+++ geos-3.0.0/source/geomgraph/GeometryGraph.cpp
@@ -45,6 +45,7 @@
 #include <vector>
 #include <memory> // auto_ptr
 #include <cassert>
+#include <typeinfo>
 
 #ifndef GEOS_DEBUG
 #define GEOS_DEBUG 0
--- geos-3.0.0.orig/source/index/quadtree/DoubleBits.cpp
+++ geos-3.0.0/source/index/quadtree/DoubleBits.cpp
@@ -22,6 +22,7 @@
 #include <geos/util/IllegalArgumentException.h>
 
 #include <string>
+#include <cstring>
 
 #if __STDC_IEC_559__
 #define ASSUME_IEEE_DOUBLE 1
--- geos-3.0.0.orig/source/headers/geos/noding/FastNodingValidator.h
+++ geos-3.0.0/source/headers/geos/noding/FastNodingValidator.h
@@ -25,6 +25,7 @@
 
 #include <cassert>
 #include <string>
+#include <memory>
 
 // Forward declarations
 namespace geos {
--- geos-3.0.0.orig/source/headers/geos/noding/IntersectionAdder.h
+++ geos-3.0.0/source/headers/geos/noding/IntersectionAdder.h
@@ -19,6 +19,7 @@
 #include <vector>
 #include <iostream>
 #include <cmath> // for abs()
+#include <cstdlib> // for abs()
 
 #include <geos/inline.h>
 
--- geos-3.0.0.orig/doc/example.cpp
+++ geos-3.0.0/doc/example.cpp
@@ -31,6 +31,7 @@
 #include <vector>
 #include <sstream>
 #include <iomanip>
+#include <cstdlib>
 #include <geos/geom/PrecisionModel.h>
 #include <geos/geom/GeometryFactory.h>
 #include <geos/geom/Geometry.h>
--- geos-3.0.0.orig/tests/xmltester/markup/MarkupSTL.h
+++ geos-3.0.0/tests/xmltester/markup/MarkupSTL.h
@@ -65,6 +65,7 @@
 #include <string>
 #include <map>
 #include <vector>
+#include <cstring>
 
 #ifdef _DEBUG
 #define _DS(i) (i?&(m_strDoc.c_str())[m_aPos[i].nStartL]:0)
--- geos-3.0.0.orig/tests/xmltester/XMLTester.cpp
+++ geos-3.0.0/tests/xmltester/XMLTester.cpp
@@ -57,6 +57,7 @@
 #include <functional>
 #include <stdexcept>
 #include <cmath>
+#include <cstring>
 
 #ifdef _MSC_VER
 #include <windows.h>
--- geos-3.0.0.orig/tests/bigtest/TestSweepLineSpeed.cpp
+++ geos-3.0.0/tests/bigtest/TestSweepLineSpeed.cpp
@@ -88,7 +88,7 @@
 //	cout << "n Pts: " << nPts << "   Executed in " << totalTime << endl;
 }
 
-int main(int /* argC */, char* /* argV[] */) {
+int main(int /* argC */, char** /* argV */) {
 
 	GeometryFactory *fact=new GeometryFactory();
 
