Fix RA when interface has more than one address on the same network.
diff --git a/CHANGELOG b/CHANGELOG
index 1358625..aa8c0d2 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -18,6 +18,10 @@
 
 	    Add --dns-rr, to allow arbitrary DNS resource records.
 
+	    Fixed bug which broke RA scheduling when an interface had
+	    two addresses in the same network. Thanks to Jim Bos for
+	    his help nailing this.
+
 
 version 2.61
 	    Re-write interface discovery code on *BSD to use
diff --git a/src/radv.c b/src/radv.c
index 6ef0dc0..632e008 100644
--- a/src/radv.c
+++ b/src/radv.c
@@ -380,13 +380,6 @@
 		if (context->flags & CONTEXT_DEPRECATE)
 		  deprecate = 1;
 
-		/* subsequent prefixes on the same interface 
-		   and subsequent instances of this prefix don't need timers */
-		if (!param->first)
-		  context->ra_time = 0;
-		param->first = 0;
-		param->found_context = 1;
-
 		/* collect dhcp-range tags */
 		if (context->netid.next == &context->netid && context->netid.net)
 		  {
@@ -394,11 +387,20 @@
 		    param->tags = &context->netid;
 		  }
 		  
+		/* subsequent prefixes on the same interface 
+		   and subsequent instances of this prefix don't need timers.
+		   Be careful not to find the same prefix twice with different
+		   addresses. */
 		if (!(context->flags & CONTEXT_RA_DONE))
 		  {
+		    if (!param->first)
+		      context->ra_time = 0;
 		    context->flags |= CONTEXT_RA_DONE;
 		    do_prefix = 1;
 		  }
+
+		param->first = 0;	
+		param->found_context = 1;
 	      }
 	  
 	  if (do_prefix)