diff --git a/src/or/circuit.c b/src/or/circuit.c
index ebbe4bd9933ae6a3ca41340dd9584e0ef7d22efc..54fb8bc6206556af1d3afeb822283b838d98345b 100644
--- a/src/or/circuit.c
+++ b/src/or/circuit.c
@@ -144,7 +144,7 @@ int circuit_init(circuit_t *circ, int aci_type, onion_layer_t *layer) {
   unsigned char digest1[20];
   unsigned char digest2[20];
   struct timeval start, end;
-  int time_passed;
+  long time_passed;
 
   assert(circ && circ->onion);
 
@@ -518,7 +518,7 @@ int circuit_consider_sending_sendme(circuit_t *circ, int edge_type) {
 
 void circuit_close(circuit_t *circ) {
   connection_t *conn;
-  circuit_t *youngest;
+  circuit_t *youngest=NULL;
 
   assert(circ);
   if(options.APPort)
diff --git a/src/or/command.c b/src/or/command.c
index 2ec250000b8e876b12e95d032730284efe6d72fe..230a117c633c792f92ce978c48a2880e44316763 100644
--- a/src/or/command.c
+++ b/src/or/command.c
@@ -10,7 +10,7 @@ void command_time_process_cell(cell_t *cell, connection_t *conn,
                                int *num, int *time,
                                void (*func)(cell_t *, connection_t *)) {
   struct timeval start, end;
-  int time_passed; 
+  long time_passed; 
 
   *num += 1;
 
diff --git a/src/or/config.c b/src/or/config.c
index f6c0bda5423440e233d085c0221dca4d9c227370..54209db4806870f3c38fb69b6d4953666398f890 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -222,6 +222,7 @@ int getconfig(int argc, char **argv, or_options_t *options) {
   options->loglevel = LOG_DEBUG;
   options->CoinWeight = 0.8;
   options->LinkPadding = 0;
+  options->MaxConn = 900;
   options->DirFetchPeriod = 600;
   options->KeepalivePeriod = 300;
   options->MaxOnionsPending = 10;
diff --git a/src/or/test.c b/src/or/test.c
index 7d5cdbbacf6a247d1c5850d7a1c53e30054124d2..fdb4417dc0080762b677ed571c65672027a95e53 100644
--- a/src/or/test.c
+++ b/src/or/test.c
@@ -280,15 +280,15 @@ test_crypto() {
     crypto_cipher_set_iv(env2, "12345678901234567890");
     crypto_cipher_encrypt_init_cipher(env1);
     crypto_cipher_decrypt_init_cipher(env2);
-    
+
     /* Try encrypting 512 chars. */
     crypto_cipher_encrypt(env1, data1, 512, data2);
     crypto_cipher_decrypt(env2, data2, 512, data3);
     test_memeq(data1, data3, 512);
-    if (str_ciphers[i] != CRYPTO_CIPHER_IDENTITY) {
-      test_memneq(data1, data2, 512);
-    } else {
+    if (str_ciphers[i] == CRYPTO_CIPHER_IDENTITY) {
       test_memeq(data1, data2, 512);
+    } else {
+      test_memneq(data1, data2, 512);
     }
     /* Now encrypt 1 at a time, and get 1 at a time. */
     for (j = 512; j < 560; ++j) {
@@ -399,13 +399,53 @@ test_crypto() {
 
 }
 
+void 
+test_util() {
+  struct timeval start, end;
+
+  start.tv_sec = 5;
+  start.tv_usec = 5000;
+
+  end.tv_sec = 5;
+  end.tv_usec = 5000;
+
+  test_eq(0L, tv_udiff(&start, &end));
+
+  end.tv_usec = 7000;
+
+  test_eq(2000L, tv_udiff(&start, &end));
+
+  end.tv_sec = 6;
+
+  test_eq(1002000L, tv_udiff(&start, &end));
+
+  end.tv_usec = 0;
+
+  test_eq(995000L, tv_udiff(&start, &end));
+
+  end.tv_sec = 4;
+
+  test_eq(0L, tv_udiff(&start, &end));
+
+}
+
 int 
 main(int c, char**v) {
+#if 0
+  or_options_t options; /* command-line and config-file options */
+
+  if(getconfig(c,v,&options))
+    exit(1);
+#endif
+  log(LOG_ERR,NULL);         /* make logging quieter */
+
   setup_directory();
-  puts("========================= Buffers ==========================");
+  puts("========================== Buffers =========================");
   test_buffers();
   puts("========================== Crypto ==========================");
-  test_crypto();
+  test_crypto(); /* this seg faults :( */
+  puts("========================== Util ============================");
+  test_util();
   puts("");
   return 0;
 }