diff --git a/.hgtags b/.hgtags
index 1811b9be71377d3894d7a302746f4c0504f9baad..3ecb82f23fb92baada49eea144ec6192fc724652 100755
--- a/.hgtags
+++ b/.hgtags
@@ -325,6 +325,7 @@ b61afe175b829c149d369524a4e974dfda99facf DRTVWR-219
 e6e553761829dc0270eaaa712b7cb0622535b076 3.4.1-beta3
 f00068a66a2e2f72acbe3f690b98b323e740b289 DRTVWR-222
 305950187c628a5d6743ee9ea711cc5b9177a18e 3.4.1-beta4
+dd23d4da3bcb2ffda58569e759feb7c119982973 DRTVWR-224
 0bd3744ff060452aa13ff4992eafb381df7b1012 3.4.1-beta5
 29075f8c1abed53dcf195a59f61744e27a91108f DRTVWR-226
 fba99f381b8d4ad1b7b42fa4993b29998d95be18 DRTVWR-179
@@ -382,5 +383,4 @@ daca610d840625b5bebb966a57cb49581852c417 DRTVWR-265
 9afbdc4e24cc04feacfb2b7a10b78a64f780901a DRTVWR-266
 73280db02501f5ad041fc18b1eba68e73a81996c DRTVWR-267
 870e2d79e0063fda87187f17bbc2747766733194 3.4.3-beta3
-18c5f76ac07937e0b64bb874edba0d60a28cec56 DRTVWR-244
-12655fb818f3b0b08a4638d0cda1ad1f01e5f52f DRTVWR-224
+84fbaf2d4141bd161731430e760949dc787ca206 DRTVWR-244
diff --git a/indra/llvfs/llvfs_objc.mm b/indra/llvfs/llvfs_objc.mm
index 16cfefda26fc483fbdd36c7c96588ce1eac3bd65..4f9e2f81e93a0c19c1d09f9e2806d5b316fed1f9 100644
--- a/indra/llvfs/llvfs_objc.mm
+++ b/indra/llvfs/llvfs_objc.mm
@@ -32,16 +32,22 @@
 
 std::string* getSystemTempFolder()
 {
+    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
     NSString * tempDir = NSTemporaryDirectory();
     if (tempDir == nil)
         tempDir = @"/tmp";
-    return ( new std::string([tempDir UTF8String]) );
+    std::string *result = ( new std::string([tempDir UTF8String]) );
+    [pool release];
+    
+    return result;
 }
 
 //findSystemDirectory scoped exclusively to this file. 
 std::string* findSystemDirectory(NSSearchPathDirectory searchPathDirectory,
                                    NSSearchPathDomainMask domainMask)
 {
+    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+    
     std::string *result;
     NSString *path = nil;
     
@@ -60,19 +66,30 @@ std::string* findSystemDirectory(NSSearchPathDirectory searchPathDirectory,
         
         result = new std::string([path UTF8String]);        
     }
+    [pool release];
     return result;
 }
 
 std::string* getSystemExecutableFolder()
 {
+    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+
     NSString *bundlePath = [[NSBundle mainBundle] executablePath];
-    return (new std::string([bundlePath UTF8String]));  
+    std::string *result = (new std::string([bundlePath UTF8String]));  
+    [pool release];
+
+    return result;
 }
 
 std::string* getSystemResourceFolder()
 {
+    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+
     NSString *bundlePath = [[NSBundle mainBundle] resourcePath];
-    return (new std::string([bundlePath UTF8String]));
+    std::string *result = (new std::string([bundlePath UTF8String]));
+    [pool release];
+    
+    return result;
 }
 
 std::string* getSystemCacheFolder()
diff --git a/indra/llvfs/tests/lldir_test.cpp b/indra/llvfs/tests/lldir_test.cpp
index 323f876c126924de4f21f7b9e3859377c5cd0c43..3cff622a4bac4091914f43a1220d4eb5d71f5a82 100644
--- a/indra/llvfs/tests/lldir_test.cpp
+++ b/indra/llvfs/tests/lldir_test.cpp
@@ -134,7 +134,7 @@ struct LLDir_Dummy: public LLDir
         return 0;
     }
 
-    virtual BOOL fileExists(const std::string& pathname) const
+    virtual bool fileExists(const std::string& pathname) const
     {
         // Record fileExists() calls so we can check whether caching is
         // working right. Certain LLDir calls should be able to make decisions
diff --git a/indra/mac_updater/MacUpdaterAppDelegate.mm b/indra/mac_updater/MacUpdaterAppDelegate.mm
index 3ddf8f92744e1207af7a667706c6583ac5c557ff..b6f95eef7e11c89e2eb133f63b5f77754cbaa066 100644
--- a/indra/mac_updater/MacUpdaterAppDelegate.mm
+++ b/indra/mac_updater/MacUpdaterAppDelegate.mm
@@ -126,6 +126,8 @@ void sendProgress(int cur, int max, const std::string str)
 
 bool copyDir(const std::string& src_dir, const std::string& dest_dir)
 {
+    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+
     NSString* file = [NSString stringWithCString:src_dir.c_str() 
                                          encoding:[NSString defaultCStringEncoding]];
     NSString* toParent = [NSString stringWithCString:dest_dir.c_str() 
@@ -137,6 +139,8 @@ bool copyDir(const std::string& src_dir, const std::string& dest_dir)
     if (!result) {
         NSLog(@"Error during copy: %@", [error localizedDescription]);
     }
+    [pool release];
+    
     return result;
 }
 
@@ -178,26 +182,38 @@ bool copyDir(const std::string& src_dir, const std::string& dest_dir)
 
 bool isDirWritable(const std::string& dir_name)
 {
-    
+    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+
     NSString *fullPath = [NSString stringWithCString:dir_name.c_str() 
                                             encoding:[NSString defaultCStringEncoding]];
 
     NSFileManager *fm = [NSFileManager defaultManager];
     bool result = [fm isWritableFileAtPath:fullPath];
+    [pool release];
     
 	return result;
 }
 
 std::string* getUserTrashFolder()
 {
+    std::string *result;
+    
+    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+
     NSString *trash_str=[NSHomeDirectory() stringByAppendingPathComponent:@".Trash"];
-    return NSToString( trash_str );
+    
+    result = NSToString( trash_str );
+    
+    [pool release];
+    return result;
 
 }
 
 bool isFSRefViewerBundle(const std::string& targetURL)
 {
 	bool result = false;
+    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+
     NSString *fullPath = [NSString stringWithCString:targetURL.c_str() 
                                             encoding:[NSString defaultCStringEncoding]];
     NSBundle *targetBundle = [NSBundle bundleWithPath:fullPath];
@@ -212,6 +228,8 @@ bool isFSRefViewerBundle(const std::string& targetURL)
         std::cout << "Target bundle ID mismatch." << std::endl;
     }
     
+    [pool release];
+    
 	return result;
 }