diff --git a/indra/lscript/lscript_compile/indra.l b/indra/lscript/lscript_compile/indra.l
index 0d93f5cba2f6aa0f383c7d8a8851b8ce90298b96..ab0d31ec461ad7578590bb6b8ab0da1540ccb96e 100644
--- a/indra/lscript/lscript_compile/indra.l
+++ b/indra/lscript/lscript_compile/indra.l
@@ -79,11 +79,17 @@ void parse_string();
 #define yyfree indra_free
 
 
+#if LL_DARWIN
+int yyparse( void );
+int yylex( void );
+int yyerror(const char *fmt, ...);
+#else
 #if defined(__cplusplus)
-extern "C" { int yylex( void ); }
 extern "C" { int yyparse( void ); }
+extern "C" { int yylex( void ); }
 extern "C" { int yyerror(const char *fmt, ...); }
 #endif
+#endif
 
 %}
 
diff --git a/indra/lscript/lscript_compile/indra.y b/indra/lscript/lscript_compile/indra.y
index e4b10ffdd9da7d96dd1a75217a65de0964056a72..8df0e8ad830b0912487fcfe71ad586e146ab8931 100644
--- a/indra/lscript/lscript_compile/indra.y
+++ b/indra/lscript/lscript_compile/indra.y
@@ -2,8 +2,10 @@
 	#include "linden_common.h"
 	#include "lscript_tree.h"
 
-    #ifdef __cplusplus
+    #if !LL_DARWIN
+    #ifdef __cplusplus 
     extern "C" {
+    #endif
     #endif
 
 	int yylex(void);
@@ -20,9 +22,11 @@
 	#pragma warning( disable : 4065 )	// warning: switch statement contains 'default' but no 'case' labels
 	#endif
 
+    #if !LL_DARWIN
     #ifdef __cplusplus
     }
     #endif
+    #endif
 %}
 
 %union
diff --git a/indra/test/io.cpp b/indra/test/io.cpp
index 62e516accb9d2ccd91f3f44a3748635f19111391..47a67deed00c80957fbfdc0136cbfe8417125581 100644
--- a/indra/test/io.cpp
+++ b/indra/test/io.cpp
@@ -1141,7 +1141,6 @@ namespace tut
 		ensure("Connected to server", connected);
 		lldebugs << "connected" << llendl;
 		pump_loop(mPump,0.1f);
-		(void)elapsed;
 		count = mPump->runningChains();
 		ensure_equals("server chain onboard", count, 2);
 		lldebugs << "** Client is connected." << llendl;
diff --git a/indra/test/llstreamtools_tut.cpp b/indra/test/llstreamtools_tut.cpp
index a9bb15d911376d2a39235a3ec969902bad41dda6..354c3dfe109253ddf5dd62c5094ee3f275626974 100644
--- a/indra/test/llstreamtools_tut.cpp
+++ b/indra/test/llstreamtools_tut.cpp
@@ -389,13 +389,10 @@ namespace tut
 		is.str(str = "  First Second \t \r  \n Third  Fourth-ShouldThisBePartOfFourth  Fifth\n");
 		actual_result = "";
 		get_word(actual_result, is); // First
-		(void)ret;
 		actual_result = "";
 		get_word(actual_result, is); // Second
-		(void)ret;
 		actual_result = "";
 		get_word(actual_result, is); // Third
-		(void)ret;
 
 		// the current implementation of get_word seems inconsistent with
 		// skip_to_next_word. skip_to_next_word treats any character other
@@ -486,7 +483,6 @@ namespace tut
 		is.str(str = "First Second \t \r\n Third  Fourth-ShouldThisBePartOfFourth  IsThisFifth\n");
 		actual_result = "";
 		get_line(actual_result, is);
-		(void)ret;
 		expected_result = "First Second \t \r\n";
 		ensure_equals("get_line: 1", actual_result, expected_result);
 
@@ -551,7 +547,6 @@ namespace tut
 		is.str(str = "Should not skip lone \r.\r\n");
 		actual_result = "";
 		get_line(actual_result, is);
-		(void)ret;
 		expected_result = "Should not skip lone \r.\r\n";
 		ensure_equals("get_line: carriage return skipped even though not followed by newline", actual_result, expected_result);
 	}
@@ -569,7 +564,6 @@ namespace tut
 		is.str(str = "\n");
 		actual_result = "";
 		get_line(actual_result, is);
-		(void)ret;
 		expected_result = "\n";
 		ensure_equals("get_line: Just newline", actual_result, expected_result);
 	}
@@ -588,7 +582,6 @@ namespace tut
 		is.str(str = "First Line.\nSecond Line.\n");
 		actual_result = "";
 		get_line(actual_result, is, 255);
-		(void)ret;
 		expected_result = "First Line.\n";
 		ensure_equals("get_line: Basic Operation", actual_result, expected_result);
 
diff --git a/indra/test/lltemplatemessagebuilder_tut.cpp b/indra/test/lltemplatemessagebuilder_tut.cpp
index 3d3edab102b1ffbb671c2a130b981e52db2cc31d..dde70f98c8fc1f087ce15f1651b93fe588b6143b 100644
--- a/indra/test/lltemplatemessagebuilder_tut.cpp
+++ b/indra/test/lltemplatemessagebuilder_tut.cpp
@@ -963,7 +963,6 @@ namespace tut
 		memset(buffer, 0xcc, bufferSize);
 		reader->getString(_PREHASH_Test1, _PREHASH_Test0, bufferSize, 
 						  outBuffer);
-		(void)outValue2;
 		ensure_equals("Ensure present value ", outValue, inValue);
 		ensure_equals("Ensure unchanged buffer ", strlen(outBuffer), 0);
 		delete reader;