diff --git a/src/server/membership.c b/src/server/membership.c
index dc4f9b26bbf02de457d24db3774f737fd273d151..85dfc0af895873cf93768434dff131ba740ac3e9 100644
--- a/src/server/membership.c
+++ b/src/server/membership.c
@@ -1,5 +1,5 @@
 /*
- * $Id: membership.c,v 0.85 2003/01/12 19:56:20 ceder Exp $
+ * $Id: membership.c,v 0.86 2003/03/23 09:45:10 ceder Exp $
  * Copyright (C) 1991-2002  Lysator Academic Computer Association.
  *
  * This file is part of the LysKOM server.
@@ -1437,10 +1437,13 @@ read_ranges_precondition(Membership *m,
     }
     
     *save = *m;
-    save->read_ranges = smalloc(m->no_of_read_ranges
-				* sizeof(save->read_ranges[0]));
-    memcpy(save->read_ranges, m->read_ranges,
-	   m->no_of_read_ranges * sizeof(save->read_ranges[0]));
+    if (m->read_ranges != NULL)
+    {
+	save->read_ranges = smalloc(m->no_of_read_ranges
+				    * sizeof(save->read_ranges[0]));
+	memcpy(save->read_ranges, m->read_ranges,
+	       m->no_of_read_ranges * sizeof(save->read_ranges[0]));
+    }
 }
 
 static int