diff --git a/lib/cocoa/src/transport/THTTPClient.h b/lib/cocoa/src/transport/THTTPClient.h
index 802ff51..d9ea1a9 100644
--- a/lib/cocoa/src/transport/THTTPClient.h
+++ b/lib/cocoa/src/transport/THTTPClient.h
@@ -7,11 +7,14 @@
   NSMutableData * mRequestData;
   NSData * mResponseData;
   int mResponseDataOffset;
+  NSString * mUserAgent;
+  int mTimeout;
 }
 
 - (id) initWithURL: (NSURL *) aURL;
 
 - (id) initWithURL: (NSURL *) aURL 
+         userAgent: (NSString *) userAgent
            timeout: (int) timeout;
 
 - (void) setURL: (NSURL *) aURL;
diff --git a/lib/cocoa/src/transport/THTTPClient.m b/lib/cocoa/src/transport/THTTPClient.m
index 2e31a98..f5186e2 100644
--- a/lib/cocoa/src/transport/THTTPClient.m
+++ b/lib/cocoa/src/transport/THTTPClient.m
@@ -15,32 +15,48 @@
   [mRequest setHTTPMethod: @"POST"];
   [mRequest setValue: @"application/x-thrift" forHTTPHeaderField: @"Content-Type"];
   [mRequest setValue: @"application/x-thrift" forHTTPHeaderField: @"Accept"];
-  [mRequest setValue: @"Cocoa/THTTPClient" forHTTPHeaderField: @"User-Agent"];
+
+  NSString * userAgent = mUserAgent;
+  if (!userAgent) {
+    userAgent = @"Cocoa/THTTPClient";
+  }
+  [mRequest setValue: userAgent forHTTPHeaderField: @"User-Agent"];
+
   [mRequest setCachePolicy: NSURLRequestReloadIgnoringCacheData];
+  if (mTimeout) {
+    [mRequest setTimeoutInterval: mTimeout];
+  }
 }
 
 
 - (id) initWithURL: (NSURL *) aURL
 {
+  return [self initWithURL: aURL
+                 userAgent: nil
+                   timeout: 0];
+}
+
+
+- (id) initWithURL: (NSURL *) aURL 
+         userAgent: (NSString *) userAgent
+           timeout: (int) timeout
+{
   self = [super init];
+  if (!self) {
+    return nil;
+  }
+  
+  mTimeout = timeout;
+  if (userAgent) {
+    mUserAgent = [userAgent retain];
+  }
   mURL = [aURL retain];
 
   [self setupRequest];
 
   // create our request data buffer
   mRequestData = [[NSMutableData alloc] initWithCapacity: 1024];
-
-  return self;
-}
-
-
-- (id) initWithURL: (NSURL *) aURL 
-           timeout: (int) timeout
-{
-  self = [self initWithURL: aURL];
-
-  [mRequest setTimeoutInterval: timeout];
-
+    
   return self;
 }
 
@@ -58,6 +74,7 @@
 - (void) dealloc
 {
   [mURL release];
+  [mUserAgent release];
   [mRequest release];
   [mRequestData release];
   [mResponseData release];
