diff --git a/ggsn/cmdline.c b/ggsn/cmdline.c
index bb5c3f1..d8eafe5 100644
--- a/ggsn/cmdline.c
+++ b/ggsn/cmdline.c
@@ -53,8 +53,8 @@
   printf("   -nSTRING   --net=STRING       Network (default='192.168.0.0/24')\n");
   printf("              --ipup=STRING      Script to run after link-up\n");
   printf("              --ipdown=STRING    Script to run after link-down\n");
-  printf("              --dynip=STRING     Dynamic IP address pool (default='192.168.0.0/24')\n");
-  printf("              --statip=STRING    Static IP address pool (default='192.168.1.0/24')\n");
+  printf("              --dynip=STRING     Dynamic IP address pool\n");
+  printf("              --statip=STRING    Static IP address pool\n");
   printf("              --pcodns1=STRING   PCO DNS Server 1 (default='0.0.0.0')\n");
   printf("              --pcodns2=STRING   PCO DNS Server 2 (default='0.0.0.0')\n");
   printf("              --timelimit=INT    Exit after timelimit seconds (default='0')\n");
@@ -111,8 +111,8 @@
   args_info->net_arg = strdup("192.168.0.0/24") ;\
   args_info->ipup_arg = NULL; \
   args_info->ipdown_arg = NULL; \
-  args_info->dynip_arg = strdup("192.168.0.0/24") ;\
-  args_info->statip_arg = strdup("192.168.1.0/24") ;\
+  args_info->dynip_arg = NULL; \
+  args_info->statip_arg = NULL; \
   args_info->pcodns1_arg = strdup("0.0.0.0") ;\
   args_info->pcodns2_arg = strdup("0.0.0.0") ;\
   args_info->timelimit_arg = 0 ;\
diff --git a/ggsn/cmdline.ggo b/ggsn/cmdline.ggo
index 0e3c548..ca4e2c7 100644
--- a/ggsn/cmdline.ggo
+++ b/ggsn/cmdline.ggo
@@ -24,8 +24,8 @@
 option  "ipup"        - "Script to run after link-up"    string no
 option  "ipdown"      - "Script to run after link-down"  string no
 
-option  "dynip"       - "Dynamic IP address pool"       string default="192.168.0.0/24" no
-option  "statip"      - "Static IP address pool"        string default="192.168.1.0/24" no
+option  "dynip"       - "Dynamic IP address pool"       string no
+option  "statip"      - "Static IP address pool"        string no
 
 option  "pcodns1"     - "PCO DNS Server 1"              string default="0.0.0.0" no
 option  "pcodns2"     - "PCO DNS Server 2"              string default="0.0.0.0" no
diff --git a/ggsn/cmdline.h b/ggsn/cmdline.h
index 0cbf483..f083dbe 100644
--- a/ggsn/cmdline.h
+++ b/ggsn/cmdline.h
@@ -29,8 +29,8 @@
   char * net_arg;	/* Network (default='192.168.0.0/24').  */
   char * ipup_arg;	/* Script to run after link-up.  */
   char * ipdown_arg;	/* Script to run after link-down.  */
-  char * dynip_arg;	/* Dynamic IP address pool (default='192.168.0.0/24').  */
-  char * statip_arg;	/* Static IP address pool (default='192.168.1.0/24').  */
+  char * dynip_arg;	/* Dynamic IP address pool.  */
+  char * statip_arg;	/* Static IP address pool.  */
   char * pcodns1_arg;	/* PCO DNS Server 1 (default='0.0.0.0').  */
   char * pcodns2_arg;	/* PCO DNS Server 2 (default='0.0.0.0').  */
   int timelimit_arg;	/* Exit after timelimit seconds (default='0').  */
diff --git a/ggsn/ggsn.c b/ggsn/ggsn.c
index 74fe1cc..5011ed1 100644
--- a/ggsn/ggsn.c
+++ b/ggsn/ggsn.c
@@ -132,7 +132,7 @@
   }
 
   pdp_ntoeua(&member->addr, &pdp->eua);
-  pdp->peer = &member;
+  pdp->peer = member;
   pdp->ipif = tun; /* TODO */
   member->peer = pdp;
 
@@ -259,7 +259,7 @@
 	      PACKAGE, args_info.listen_arg);
       syslog(LOG_ERR, "Invalid listening address: %s!", 
 	     args_info.listen_arg);
-      return 1;
+      exit(1);
     }
     else {
       memcpy(&listen_.s_addr, host->h_addr, host->h_length);
@@ -275,21 +275,30 @@
     if(ippool_aton(&net, &mask, args_info.net_arg, 0)) {
       sys_err(LOG_ERR, __FILE__, __LINE__, 0,
 	      "Invalid network address: %s!", args_info.net_arg);
-      return -1;
+      exit(1);
     }
   }
+  else {
+    sys_err(LOG_ERR, __FILE__, __LINE__, 0,
+	    "Network address must be specified: %s!", args_info.net_arg);
+    exit(1);
+  }
 
   /* dynip                                                        */
   if (!args_info.dynip_arg) {
-    sys_err(LOG_ERR, __FILE__, __LINE__, 0,
-	    "No dynamic address pool given!");
-    return -1;
+    if (ippool_new(&ippool, args_info.net_arg, 
+		   IPPOOL_NONETWORK | IPPOOL_NOBROADCAST)) {
+      sys_err(LOG_ERR, __FILE__, __LINE__, 0,
+	      "Failed to allocate IP pool!");
+      exit(1);
+    }
   }
   else {
     if (ippool_new(&ippool, args_info.dynip_arg, 
 		   IPPOOL_NONETWORK | IPPOOL_NOBROADCAST)) {
       sys_err(LOG_ERR, __FILE__, __LINE__, 0,
 	      "Failed to allocate IP pool!");
+      exit(1);
     }
   }
 
