diff --git a/lib/erl/src/thrift_client.erl b/lib/erl/src/thrift_client.erl
index d70df34..92c531a 100644
--- a/lib/erl/src/thrift_client.erl
+++ b/lib/erl/src/thrift_client.erl
@@ -109,16 +109,33 @@
                 start
         end,
 
-    case gen_server:Starter(?MODULE, [Service], []) of
-        {ok, Pid} ->
-            case gen_server:call(Pid, {connect, ProtocolFactory}) of
-                ok ->
-                    {ok, Pid};
-                Error ->
-                    Error
+    Connect =
+        case lists:keysearch(connect, 1, ClientOpts) of
+            {value, {connect, Choice}} ->
+                Choice;
+            _ ->
+                %% By default, connect at creation-time.
+                true
+        end,
+
+
+    Started = gen_server:Starter(?MODULE, [Service], []),
+
+    if
+        Connect ->
+            case Started of
+                {ok, Pid} ->
+                    case gen_server:call(Pid, {connect, ProtocolFactory}) of
+                        ok ->
+                            {ok, Pid};
+                        Error ->
+                            Error
+                    end;
+                Else ->
+                    Else
             end;
-        Else ->
-            Else
+        true ->
+            Started
     end.
 
 call(Client, Function, Args)
diff --git a/test/erl/src/test_tether.erl b/test/erl/src/test_tether.erl
index 07d1ee9..35794e6 100644
--- a/test/erl/src/test_tether.erl
+++ b/test/erl/src/test_tether.erl
@@ -62,6 +62,9 @@
             io:format("FAIL.  Expected ~p more clients.~n", [N])
     end.
 
+make_thrift_client(Opts) ->
+     thrift_client:start(fun()->ok end, thriftTest_thrift, Opts).
+
 make_protocol_factory(Port) ->
     {ok, TransportFactory} =
         thrift_socket_transport:new_transport_factory(
@@ -73,9 +76,9 @@
 
 
 test_start() ->
-    {ok, Client1} = gen_server:start(thrift_client, [thriftTest_thrift], []),
+    {ok, Client1} = make_thrift_client([{connect, false}]),
     tester ! {client, unlinked, Client1},
-    {ok, Client2} = gen_server:start(thrift_client, [thriftTest_thrift], []),
+    {ok, Client2} = make_thrift_client([{connect, false}]),
     io:format("PASS.  Unlinked clients created.~n"),
     try
         gen_server:call(Client2, {connect, make_protocol_factory(2)}),
@@ -93,9 +96,9 @@
     exit(die).
 
 test_linked() ->
-    {ok, Client1} = gen_server:start_link(thrift_client, [thriftTest_thrift], []),
+    {ok, Client1} = make_thrift_client([{connect, false}, {monitor, link}]),
     tester ! {client, linked, Client1},
-    {ok, Client2} = gen_server:start_link(thrift_client, [thriftTest_thrift], []),
+    {ok, Client2} = make_thrift_client([{connect, false}, {monitor, link}]),
     io:format("PASS.  Linked clients created.~n"),
     try
         gen_server:call(Client2, {connect, make_protocol_factory(2)}),
