This is a known problem. I used following workaround in my flagball-mod.
But note: this is an unofficial patch done by me, use at your own risk.
diff -Naur teeworlds-0.4.3-src.orig/src/engine/e_engine.c teeworlds-0.4.3-src/src/engine/e_engine.c
--- teeworlds-0.4.3-src.orig/src/engine/e_engine.c 2008-08-31 15:30:58.000000000 +0200
+++ teeworlds-0.4.3-src/src/engine/e_engine.c 2008-09-08 06:25:33.000000000 +0200
@@ -223,7 +223,12 @@
/* master server functions */
enum
{
- NUM_LOOKUP_THREADS=4,
+ /* Workaround bug:
+ * This may fix the bug server hanging in state
+ * "[register]: refreshing ip addresses"
+ * set NUM_LOOKUP_THREADS to 1 instead of 4
+ */
+ NUM_LOOKUP_THREADS=1 /*4*/,
STATE_PROCESSED=0,
STATE_RESULT,
"Multiple exclamation marks," he went on, shaking his head, "are a sure sign of a diseased mind." - Terry Pratchett -