diff --git a/indra/test/llblowfish_tut.cpp b/indra/test/llblowfish_tut.cpp
index 97ed2be7607ab1e43c6453093130f30c469192a1..5b956d7544fde3f67afa8d5469a96f3b01167c22 100644
--- a/indra/test/llblowfish_tut.cpp
+++ b/indra/test/llblowfish_tut.cpp
@@ -107,7 +107,7 @@ namespace tut
 		ensure("encryption space 8",
 				(dst_len == 16)  );
 #else
-		skip_fail("Blowfish only supported on Linux.");
+		skip("Blowfish only supported on Linux.");
 #endif // LL_LINUX
 	}
 
@@ -129,7 +129,7 @@ namespace tut
 
 		ensure("encrypt null key", matchFile("blowfish.1.bin", result));
 #else
-		skip_fail("Blowfish only supported on Linux.");
+		skip("Blowfish only supported on Linux.");
 #endif // LL_LINUX
 	}
 
@@ -152,7 +152,7 @@ namespace tut
 
 		ensure("encrypt real key", matchFile("blowfish.2.bin", result));
 #else
-        skip_fail("Blowfish only supported on Linux.");
+        skip("Blowfish only supported on Linux.");
 #endif // LL_LINUX
 	}
 }
diff --git a/indra/test/llbuffer_tut.cpp b/indra/test/llbuffer_tut.cpp
index cd659ce9b89e37be1ff7bec0f51d1d8a2c33bb90..09020d638c3b147808aba4252b49ad273a7acd89 100644
--- a/indra/test/llbuffer_tut.cpp
+++ b/indra/test/llbuffer_tut.cpp
@@ -31,7 +31,7 @@
  * $/LicenseInfo$
  */
 
-#include <tut/tut.h>
+#include <tut/tut.hpp>
 #include "linden_common.h"
 #include "lltut.h"
 #include "llbuffer.h"
diff --git a/indra/test/lldatapacker_tut.cpp b/indra/test/lldatapacker_tut.cpp
index 2b2085e0aee1db9ee881775dd7312a1c07d9c59c..15bcf33c58d4a8af2fe71345d6f274f772dde981 100644
--- a/indra/test/lldatapacker_tut.cpp
+++ b/indra/test/lldatapacker_tut.cpp
@@ -31,7 +31,7 @@
  * $/LicenseInfo$
  */
 
-#include <tut/tut.h>
+#include <tut/tut.hpp>
 #include "lltut.h"
 #include "linden_common.h"
 #include "lldatapacker.h"
diff --git a/indra/test/llhttpclient_tut.cpp b/indra/test/llhttpclient_tut.cpp
index 4ddea0f9cc23c4493fd00742633d5b96a4de5eb7..ddacbe0fa055126c8c76d8e536f3c83c7ffb1250 100644
--- a/indra/test/llhttpclient_tut.cpp
+++ b/indra/test/llhttpclient_tut.cpp
@@ -35,7 +35,7 @@
  *
  */
 
-#include <tut/tut.h>
+#include <tut/tut.hpp>
 #include "linden_common.h"
 
 // These are too slow on Windows to actually include in the build. JC
@@ -345,7 +345,7 @@ namespace tut
 		// won't ever let it run.  Instead get from a known LLSD
 		// source and compare results with the non-blocking get which
 		// is tested against the mini server earlier.
-		skip_fail("secondlife.com is not reliable enough for unit tests.");
+		skip("secondlife.com is not reliable enough for unit tests.");
 
 
 		LLSD expected;
diff --git a/indra/test/llpermissions_tut.cpp b/indra/test/llpermissions_tut.cpp
index 69f832049c42f54638bb1db4ee876717ef889c9d..2c96f7cd9600b09e9a2d2b3a1d0f7c47dfda9714 100644
--- a/indra/test/llpermissions_tut.cpp
+++ b/indra/test/llpermissions_tut.cpp
@@ -31,7 +31,7 @@
  * $/LicenseInfo$
  */
  
-#include <tut/tut.h>
+#include <tut/tut.hpp>
 #include "linden_common.h"
 #include "lltut.h"
 #include "message.h"
diff --git a/indra/test/llsaleinfo_tut.cpp b/indra/test/llsaleinfo_tut.cpp
index 0d0c52a2ddcf0b481531a3067feb882cc3ca6415..2d820f554d05be6864bcb8a409dc4a0772cb99a2 100644
--- a/indra/test/llsaleinfo_tut.cpp
+++ b/indra/test/llsaleinfo_tut.cpp
@@ -31,7 +31,7 @@
  * $/LicenseInfo$
  */
 
-#include <tut/tut.h>
+#include <tut/tut.hpp>
 #include "linden_common.h"
 #include "lltut.h"
 #include "llsaleinfo.h"
diff --git a/indra/test/llsd_new_tut.cpp b/indra/test/llsd_new_tut.cpp
index 18d329ce8bd40058e53804b7c449469bd984aad2..d92ccfe46612040851acd781274426cfae986db1 100644
--- a/indra/test/llsd_new_tut.cpp
+++ b/indra/test/llsd_new_tut.cpp
@@ -30,7 +30,7 @@
  * $/LicenseInfo$
  */
 
-#include <tut/tut.h>
+#include <tut/tut.hpp>
 #include "linden_common.h"
 #include "lltut.h"
 
diff --git a/indra/test/llsdmessagebuilder_tut.cpp b/indra/test/llsdmessagebuilder_tut.cpp
index 96b37cc262119c66cbffa5154acfad1e3b721834..4605e418deaffa4393aa3e9ae9501eeb9a7f197c 100755
--- a/indra/test/llsdmessagebuilder_tut.cpp
+++ b/indra/test/llsdmessagebuilder_tut.cpp
@@ -30,7 +30,7 @@
  * $/LicenseInfo$
  */
 
-#include <tut/tut.h>
+#include <tut/tut.hpp>
 
 #include "linden_common.h"
 #include "lltut.h"
diff --git a/indra/test/llsdmessagereader_tut.cpp b/indra/test/llsdmessagereader_tut.cpp
index bee6f8a185775855a83f57d9b0cfbacd2ec1129d..3f4e587460e788d948444c501e0ff4815320103a 100755
--- a/indra/test/llsdmessagereader_tut.cpp
+++ b/indra/test/llsdmessagereader_tut.cpp
@@ -30,7 +30,7 @@
  * $/LicenseInfo$
  */
 
-#include <tut/tut.h>
+#include <tut/tut.hpp>
 #include "linden_common.h"
 #include "lltut.h"
 #include "v3dmath.h"
diff --git a/indra/test/llservicebuilder_tut.cpp b/indra/test/llservicebuilder_tut.cpp
index 14f3774f7c7587c3628395a90bc4efbfb1082f45..256e83f9c3a73323ce91fb6e88f551993a5f933b 100644
--- a/indra/test/llservicebuilder_tut.cpp
+++ b/indra/test/llservicebuilder_tut.cpp
@@ -30,7 +30,7 @@
 * $/LicenseInfo$
 */
 
-#include <tut/tut.h>
+#include <tut/tut.hpp>
 
 #include "linden_common.h"
 #include "lltut.h"
diff --git a/indra/test/llstreamtools_tut.cpp b/indra/test/llstreamtools_tut.cpp
index d1466e923ecd0118eec399526470d778875fd6fd..261545efd5f9fe02a806caf4c8a35115be8131f9 100644
--- a/indra/test/llstreamtools_tut.cpp
+++ b/indra/test/llstreamtools_tut.cpp
@@ -31,7 +31,7 @@
  * $/LicenseInfo$
  */
  
-#include <tut/tut.h>
+#include <tut/tut.hpp>
 
 #include "linden_common.h"
 #include "llstreamtools.h"
diff --git a/indra/test/lltemplatemessagebuilder_tut.cpp b/indra/test/lltemplatemessagebuilder_tut.cpp
index c71d63a2d79481fa0c8b31d4dc331fd2a07d0221..c8afc171ed3f2a2287b89cac84242f7930c822aa 100644
--- a/indra/test/lltemplatemessagebuilder_tut.cpp
+++ b/indra/test/lltemplatemessagebuilder_tut.cpp
@@ -30,7 +30,7 @@
  * $/LicenseInfo$
  */
 
-#include <tut/tut.h>
+#include <tut/tut.hpp>
 #include "linden_common.h"
 #include "lltut.h"
 
diff --git a/indra/test/lltut.cpp b/indra/test/lltut.cpp
index 03a70c714d7cb01a7cea4c9730edfea4178066f4..b9a46544fae5371eff267dc91ad97f9dcacff044 100644
--- a/indra/test/lltut.cpp
+++ b/indra/test/lltut.cpp
@@ -39,7 +39,6 @@
 
 namespace tut
 {
-	template<>
 	void ensure_equals(const char* msg, const LLDate& actual,
 		const LLDate& expected)
 	{
@@ -47,7 +46,6 @@ namespace tut
 			actual.secondsSinceEpoch(), expected.secondsSinceEpoch());
 	}
 
-	template<>
 	void ensure_equals(const char* msg, const LLURI& actual,
 		const LLURI& expected)
 	{
@@ -55,7 +53,6 @@ namespace tut
 			actual.asString(), expected.asString());
 	}
 
-	template<>
 	void ensure_equals(const char* msg,
 		const std::vector<U8>& actual, const std::vector<U8>& expected)
 	{
@@ -73,7 +70,6 @@ namespace tut
 		}
 	}
 
-	template<>
 	void ensure_equals(const char* m, const LLSD& actual,
 		const LLSD& expected)
 	{
diff --git a/indra/test/lltut.h b/indra/test/lltut.h
index 375d55818221e2260294c7c7523e83a785457014..b6539be71b29279b90d7d58d42e85a2a7bc54763 100644
--- a/indra/test/lltut.h
+++ b/indra/test/lltut.h
@@ -34,7 +34,7 @@
 #ifndef LL_LLTUT_H
 #define LL_LLTUT_H
 
-#include <tut/tut.h>
+#include <tut/tut.hpp>
 
 #include "lldate.h"
 #include "lluri.h"
@@ -108,19 +108,15 @@ namespace tut
 		const Q& actual,const T& expected)
 		{ ensure_equals(msg.c_str(), actual, expected); }
 
-	template<>
 	void ensure_equals(const char* msg,
 		const LLDate& actual, const LLDate& expected);
 
-	template<>
 	void ensure_equals(const char* msg,
 		const LLURI& actual, const LLURI& expected);
 		
-	template<>
 	void ensure_equals(const char* msg,
 		const std::vector<U8>& actual, const std::vector<U8>& expected);
 
-	template<>
 	void ensure_equals(const char* msg,
 		const LLSD& actual, const LLSD& expected);
 	
diff --git a/indra/test/lluserrelations_tut.cpp b/indra/test/lluserrelations_tut.cpp
index 4d07ba947ed10c3c758937148fbea0be1d57061a..fdf712493df18656bce68da5e080d96637bd7879 100644
--- a/indra/test/lluserrelations_tut.cpp
+++ b/indra/test/lluserrelations_tut.cpp
@@ -31,7 +31,7 @@
  * $/LicenseInfo$
  */
 
-#include <tut/tut.h>
+#include <tut/tut.hpp>
 
 #include "linden_common.h"
 #include "lluserrelations.h"
diff --git a/indra/test/lluuidhashmap_tut.cpp b/indra/test/lluuidhashmap_tut.cpp
index 129d17aaa4acc4d6e96a95d6161c4eb40252c67a..a26a5c3622bab85bc24d807826883deb1c94373f 100644
--- a/indra/test/lluuidhashmap_tut.cpp
+++ b/indra/test/lluuidhashmap_tut.cpp
@@ -31,7 +31,7 @@
  * $/LicenseInfo$
  */
 
-#include <tut/tut.h>
+#include <tut/tut.hpp>
 #include "linden_common.h"
 #include "lluuidhashmap.h"
 #include "llsdserialize.h"
diff --git a/indra/test/message_tut.cpp b/indra/test/message_tut.cpp
index 0cafdcd679a4249ff0dc7ea434420023298dae9a..3c8f7f10b6c5593dafff093e11b669e409d1eecb 100644
--- a/indra/test/message_tut.cpp
+++ b/indra/test/message_tut.cpp
@@ -30,7 +30,7 @@
  * $/LicenseInfo$
  */
 
-#include <tut/tut.h>
+#include <tut/tut.hpp>
 #include "linden_common.h"
 #include "lltut.h"
 
diff --git a/indra/test/test.cpp b/indra/test/test.cpp
index 4a9b2825f2284467c7afc12fbd8e3bcfc666be56..3dcd6201bf5a897952847aa5243aada6771f337b 100644
--- a/indra/test/test.cpp
+++ b/indra/test/test.cpp
@@ -68,7 +68,6 @@ class LLTestCallback : public tut::callback
 		mPassedTests(0),
 		mFailedTests(0),
 		mSkippedTests(0),
-		mSkippedFailTests(0),
 		mStream(stream)
 	{
 	}
@@ -107,10 +106,6 @@ class LLTestCallback : public tut::callback
 			break;
 		case tut::test_result::skip:
 			++mSkippedTests;
-			out << "skipped";
-			break;
-		case tut::test_result::skip_fail:
-			++mSkippedFailTests;
 			out << "skipped known failure";
 			break;
 		default:
@@ -159,12 +154,7 @@ class LLTestCallback : public tut::callback
 		
 		if (mSkippedTests > 0)
 		{
-			stream << "Skipped Tests: " << mSkippedTests << std::endl;
-		}
-
-		if (mSkippedFailTests > 0)
-		{
-			stream << "Skipped known failures: " << mSkippedFailTests
+			stream << "Skipped known failures: " << mSkippedTests
 				<< std::endl;
 		}
 
@@ -183,7 +173,6 @@ class LLTestCallback : public tut::callback
 	int mPassedTests;
 	int mFailedTests;
 	int mSkippedTests;
-	int mSkippedFailTests;
 	std::ostream *mStream;
 };
 
@@ -194,7 +183,6 @@ static const apr_getopt_option_t TEST_CL_OPTIONS[] =
 	{"verbose", 'v', 0, "Verbose output."},
 	{"group", 'g', 1, "Run test group specified by option argument."},
 	{"output", 'o', 1, "Write output to the named file."},
-	{"skip", 's', 1, "Skip test number specified by option argument. Only works when a specific group is being tested"},
 	{"touch", 't', 1, "Touch the given file if all tests succeed"},
 	{"wait", 'w', 0, "Wait for input before exit."},
 	{"debug", 'd', 0, "Emit full debug logs."},
@@ -226,8 +214,6 @@ void stream_usage(std::ostream& s, const char* app)
 	s << "\tList all available test groups." << std::endl;
 	s << "  " << app << " --group=uuid" << std::endl;
 	s << "\tRun the test group 'uuid'." << std::endl;
-	s << "  " << app << " --skip=2" << std::endl;
-	s << "\tSkip test case 2." << std::endl;
 }
 
 void stream_groups(std::ostream& s, const char* app)
@@ -276,7 +262,6 @@ int main(int argc, char **argv)
 	// values used for controlling application
 	bool verbose_mode = false;
 	bool wait_at_exit = false;
-	int  skip_test_id = 0;
 	std::string test_group;
 
 	// values use for options parsing
@@ -302,9 +287,6 @@ int main(int argc, char **argv)
 		case 'g':
 			test_group.assign(opt_arg);
 			break;
-		case 's':
-			skip_test_id = atoi(opt_arg);
-			break;			
 		case 'h':
 			stream_usage(std::cout, argv[0]);
 			return 0;
@@ -347,7 +329,7 @@ int main(int argc, char **argv)
 	}
 	else
 	{
-		tut::runner.get().run_tests(test_group, skip_test_id);
+		tut::runner.get().run_tests(test_group);
 	}
 
 	if (wait_at_exit)
diff --git a/install.xml b/install.xml
index a1dcd7d0f5889982af8e9fb99c1d8f7c9516576d..f68bf3fca08914f0867a290f89495d7e9787eb10 100644
--- a/install.xml
+++ b/install.xml
@@ -1198,39 +1198,6 @@ anguage Infrstructure (CLI) international standard</string>
           </map>
         </map>
       </map>
-      <key>openal</key>
-      <map>
-        <key>copyright</key>
-        <string>Copyright (C) 2008 by authors.</string>
-        <key>description</key>
-        <string>3D Audio library</string>
-        <key>license</key>
-        <string>lgpl</string>
-        <key>packages</key>
-        <map>
-          <key>darwin</key>
-          <map>
-            <key>md5sum</key>
-            <string>a0757244e3e6688fde2ffeea35cc1f96</string>
-            <key>url</key>
-            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openal-darwin-20080924.tar.bz2</uri>
-          </map>
-          <key>linux</key>
-          <map>
-            <key>md5sum</key>
-            <string>f0d9a8d1318b519cffe6c40c9cac4e21</string>
-            <key>url</key>
-            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openal-linux-20081010c-59a71b14-plughw.tar.bz2</uri>
-          </map>
-          <key>windows</key>
-          <map>
-            <key>md5sum</key>
-            <string>a0757244e3e6688fde2ffeea35cc1f96</string>
-            <key>url</key>
-            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openal-windows-20080924.tar.bz2</uri>
-          </map>
-        </map>
-      </map>
       <key>openSSL</key>
       <map>
         <key>license</key>
@@ -1274,6 +1241,39 @@ anguage Infrstructure (CLI) international standard</string>
           </map>
         </map>
       </map>
+      <key>openal</key>
+      <map>
+        <key>copyright</key>
+        <string>Copyright (C) 2008 by authors.</string>
+        <key>description</key>
+        <string>3D Audio library</string>
+        <key>license</key>
+        <string>lgpl</string>
+        <key>packages</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>md5sum</key>
+            <string>a0757244e3e6688fde2ffeea35cc1f96</string>
+            <key>url</key>
+            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openal-darwin-20080924.tar.bz2</uri>
+          </map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>f0d9a8d1318b519cffe6c40c9cac4e21</string>
+            <key>url</key>
+            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openal-linux-20081010c-59a71b14-plughw.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>a0757244e3e6688fde2ffeea35cc1f96</string>
+            <key>url</key>
+            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openal-windows-20080924.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
       <key>openjpeg</key>
       <map>
         <key>copyright</key>
@@ -1383,47 +1383,19 @@ anguage Infrstructure (CLI) international standard</string>
       <key>tut</key>
       <map>
         <key>copyright</key>
-        <string>Copyright 2002-2006 Vladimir Dyuzhev</string>
+        <string>Copyright 2002-2006 Vladimir Dyuzhev, Copyright 2007 Denis Kononenko, Copyright 2008 Michal Rzechonek</string>
         <key>description</key>
         <string>C++ Template Unit Test</string>
         <key>license</key>
         <string>bsd</string>
         <key>packages</key>
         <map>
-          <key>darwin</key>
-          <map>
-            <key>md5sum</key>
-            <string>1116d9ba0c34c042788421d4e520e747</string>
-            <key>url</key>
-            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/tut-darwin-20080613.tar.bz2</uri>
-          </map>
-          <key>linux</key>
-          <map>
-            <key>md5sum</key>
-            <string>1116d9ba0c34c042788421d4e520e747</string>
-            <key>url</key>
-            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/tut-linux-20080812.tar.bz2</uri>
-          </map>
-          <key>linux32</key>
-          <map>
-            <key>md5sum</key>
-            <string>f410e4acdf4696c90d3fc708c41e6226</string>
-            <key>url</key>
-            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/tut-2006-06-22-linux-i686-gcc-4.1-20080915.tar.bz2</uri>
-          </map>
-          <key>linux64</key>
-          <map>
-            <key>md5sum</key>
-            <string>728f4d8f74df8e84d0781b9ee9fc47ed</string>
-            <key>url</key>
-            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/tut-2006-06-22-linux64-20080909.tar.bz2</uri>
-          </map>
-          <key>windows</key>
+          <key>common</key>
           <map>
             <key>md5sum</key>
-            <string>aa5e69f024bb408fac41d77d1101ccb6</string>
+            <string>a1b8a118ba9df1f2a73f6aafa7980e83</string>
             <key>url</key>
-            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/tut-windows-20080613.tar.bz2</uri>
+            <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/tut-2008-11-30-common-20081208.tar.bz2</uri>
           </map>
         </map>
       </map>