diff -Naur mjpegtools-1.9.0rc3-orig/mpeg2enc/encodertypes.h mjpegtools-1.9.0rc3/mpeg2enc/encodertypes.h
--- mjpegtools-1.9.0rc3-orig/mpeg2enc/encodertypes.h	2006-06-30 22:46:12.000000000 -0600
+++ mjpegtools-1.9.0rc3/mpeg2enc/encodertypes.h	2008-03-08 21:37:31.000000000 -0600
@@ -25,6 +25,8 @@
  */
 
 
+#include <stdlib.h>
+
 class Parity
 {
 public:
diff -Naur mjpegtools-1.9.0rc3-orig/mpeg2enc/macroblock.cc mjpegtools-1.9.0rc3/mpeg2enc/macroblock.cc
--- mjpegtools-1.9.0rc3-orig/mpeg2enc/macroblock.cc	2006-08-25 08:37:37.000000000 -0600
+++ mjpegtools-1.9.0rc3/mpeg2enc/macroblock.cc	2008-03-08 21:38:11.000000000 -0600
@@ -21,6 +21,7 @@
 
 #include <stdio.h>
 #include <cassert>
+#include <limits.h>
 
 #include "macroblock.hh"
 #include "mpeg2syntaxcodes.h"
diff -Naur mjpegtools-1.9.0rc3-orig/mpeg2enc/picturereader.cc mjpegtools-1.9.0rc3/mpeg2enc/picturereader.cc
--- mjpegtools-1.9.0rc3-orig/mpeg2enc/picturereader.cc	2007-02-26 11:05:48.000000000 -0600
+++ mjpegtools-1.9.0rc3/mpeg2enc/picturereader.cc	2008-03-08 21:38:41.000000000 -0600
@@ -23,6 +23,7 @@
 #include "picturereader.hh"
 #include "mpeg2encoder.hh"
 #include "imageplanes.hh"
+#include <limits.h>
 //#include <stdio.h>
 //#include <stdlib.h>
 //#include <unistd.h>
diff -Naur mjpegtools-1.9.0rc3-orig/mplex/inputstrm.cpp mjpegtools-1.9.0rc3/mplex/inputstrm.cpp
--- mjpegtools-1.9.0rc3-orig/mplex/inputstrm.cpp	2006-08-25 08:37:37.000000000 -0600
+++ mjpegtools-1.9.0rc3/mplex/inputstrm.cpp	2008-03-08 21:39:25.000000000 -0600
@@ -23,6 +23,7 @@
 
 #include <config.h>
 #include <assert.h>
+#include <limits.h>
 
 #include "mjpeg_types.h"
 #include "inputstrm.hpp"
diff -Naur mjpegtools-1.9.0rc3-orig/mplex/padstrm.cpp mjpegtools-1.9.0rc3/mplex/padstrm.cpp
--- mjpegtools-1.9.0rc3-orig/mplex/padstrm.cpp	2004-03-15 12:47:43.000000000 -0600
+++ mjpegtools-1.9.0rc3/mplex/padstrm.cpp	2008-03-08 21:44:40.000000000 -0600
@@ -24,6 +24,7 @@
 #include "config.h"
 #endif
 
+#include <string.h>
 #include "padstrm.hpp"
 
 
diff -Naur mjpegtools-1.9.0rc3-orig/mplex/multiplexor.cpp mjpegtools-1.9.0rc3/mplex/multiplexor.cpp
--- mjpegtools-1.9.0rc3-orig/mplex/multiplexor.cpp	2007-04-02 09:43:34.000000000 -0600
+++ mjpegtools-1.9.0rc3/mplex/multiplexor.cpp	2008-03-08 21:47:01.000000000 -0600
@@ -22,6 +22,7 @@
 #include <config.h>
 #include <math.h>
 #include <stdlib.h>
+#include <string.h>
 
 #include <mjpeg_types.h>
 #include <mjpeg_logging.h>
diff -Naur mjpegtools-1.9.0rc3-orig/mplex/main.cpp mjpegtools-1.9.0rc3/mplex/main.cpp
--- mjpegtools-1.9.0rc3-orig/mplex/main.cpp	2006-06-30 22:46:13.000000000 -0600
+++ mjpegtools-1.9.0rc3/mplex/main.cpp	2008-03-08 21:48:19.000000000 -0600
@@ -31,6 +31,7 @@
 #include <getopt.h>
 #endif
 #include <string>
+#include <string.h>
 #include <memory>
 #include <sys/stat.h>
 #ifndef _WIN32
diff -Naur mjpegtools-1.9.0rc3-orig/y4mdenoise/Set.hh mjpegtools-1.9.0rc3/y4mdenoise/Set.hh
--- mjpegtools-1.9.0rc3-orig/y4mdenoise/Set.hh	2004-04-27 14:45:56.000000000 -0600
+++ mjpegtools-1.9.0rc3/y4mdenoise/Set.hh	2008-03-08 22:16:31.000000000 -0600
@@ -23,7 +23,7 @@
 		// How we implement ourselves.
 	
 public:
-	typedef typename Imp::Allocator Allocator;
+	typedef typename Imp::Allocator_t Allocator;
 		// The type of allocator to use to allocate items in the set.
 
 	Set (const PRED &a_rPred = PRED(),
diff -Naur mjpegtools-1.9.0rc3-orig/y4mdenoise/SkipList.hh mjpegtools-1.9.0rc3/y4mdenoise/SkipList.hh
--- mjpegtools-1.9.0rc3-orig/y4mdenoise/SkipList.hh	2004-07-18 00:43:01.000000000 -0600
+++ mjpegtools-1.9.0rc3/y4mdenoise/SkipList.hh	2008-03-08 22:15:52.000000000 -0600
@@ -57,19 +57,19 @@
 		// Will give good sorting for up to e^10 items.
 	
 public:
-	typedef Allocator<Node,HEADERCHUNK> Allocator;
+	typedef Allocator<Node,HEADERCHUNK> Allocator_t;
 		// The type of node allocator to use.
 
-	static Allocator sm_oNodeAllocator;
+	static Allocator_t sm_oNodeAllocator;
 		// The default node allocator.
 
 	SkipList (const PRED &a_rPred = PRED(),
-			Allocator &a_rAlloc = sm_oNodeAllocator);
+			Allocator_t &a_rAlloc = sm_oNodeAllocator);
 		// Default constructor.  Must be followed by Init().
 
 	SkipList (Status_t &a_reStatus, bool a_bAllowDuplicates,
 			uint32_t a_nRandSeed, const PRED &a_rPred = PRED(),
-			Allocator &a_rAlloc = sm_oNodeAllocator);
+			Allocator_t &a_rAlloc = sm_oNodeAllocator);
 		// Constructor.  Specify whether or not duplicates are allowed,
 		// and provide a random number seed.
 
@@ -255,7 +255,7 @@
 
 private:
 	
-	Allocator &m_rNodeAllocator;
+	Allocator_t &m_rNodeAllocator;
 		// Where we get memory to allocate nodes.
 
 	bool m_bAllowDuplicates;
@@ -337,7 +337,7 @@
 
 // The default node allocator.  Allocates 64K at a time.
 template <class KEY, class VALUE, class KEYFN, class PRED>
-typename SkipList<KEY,VALUE,KEYFN,PRED>::Allocator
+typename SkipList<KEY,VALUE,KEYFN,PRED>::Allocator_t
 	SkipList<KEY,VALUE,KEYFN,PRED>::sm_oNodeAllocator (65536);
 
 
@@ -345,7 +345,7 @@
 // Default constructor.  Must be followed by Init().
 template <class KEY, class VALUE, class KEYFN, class PRED>
 SkipList<KEY,VALUE,KEYFN,PRED>::SkipList (const PRED &a_rPred,
-		Allocator &a_rAlloc)
+		Allocator_t &a_rAlloc)
 	: m_rNodeAllocator (a_rAlloc), m_oPred (a_rPred)
 {
 	// Set up some defaults.
@@ -371,7 +371,7 @@
 template <class KEY, class VALUE, class KEYFN, class PRED>
 SkipList<KEY,VALUE,KEYFN,PRED>::SkipList (Status_t &a_reStatus,
 		bool a_bAllowDuplicates, uint32_t a_nRandSeed,
-		const PRED &a_rPred, Allocator &a_rAlloc)
+		const PRED &a_rPred, Allocator_t &a_rAlloc)
 	: m_rNodeAllocator (a_rAlloc), m_oPred (a_rPred)
 {
 	// Make sure they didn't start us off with an error.
