diff -ru noad-0.6.0-orig/main.cpp noad-0.6.0/main.cpp
--- noad-0.6.0-orig/main.cpp	2007-05-12 17:28:01.000000000 +0200
+++ noad-0.6.0/main.cpp	2007-05-12 18:20:30.000000000 +0200
@@ -566,10 +566,17 @@
     signal(SIGABRT, signal_handler);
     signal(SIGSEGV, signal_handler);
     signal(SIGUSR1, signal_handler);
+    signal(SIGALRM, signal_handler);
     
     // do cleanup at exit...
     atexit(cleanUp);
     
+   
+    if (!bOnline) {
+       // now start alarm timer to kill hanging noad (hardcoded 30min timeout)
+       alarm(30*60);
+    }
+    
     // now do the work..,
     doNoad(bBefore, recDir);
 
