diff -uNr cman-2.0.84-startupquorum/cman/daemon/commands.c cman-2.0.84/cman/daemon/commands.c
--- cman-2.0.84-startupquorum/cman/daemon/commands.c	2008-04-15 22:15:23.000000000 +0200
+++ cman-2.0.84/cman/daemon/commands.c	2008-10-21 09:12:53.000000000 +0200
@@ -319,8 +319,10 @@
 	 * Also: if there are more than two nodes, force us inquorate to avoid
 	 * any damage or confusion.
 	 */
-	if (two_node && total_nodes <= 2)
-		newquorum = 1;
+	if (two_node && total_nodes <= 2) {
+		if (highest_expected == 2) newquorum = 2;
+		else newquorum = 1;
+	}
 
 	if (ret_total_votes)
 		*ret_total_votes = total_votes;
--- cman-2.0.84/cman/daemon/cmanccs.c	2008-04-15 22:15:23.000000000 +0200
+++ cman-2.0.84-aaa/cman/daemon/cmanccs.c	2008-10-21 10:56:46.000000000 +0200
@@ -491,8 +491,6 @@
 		}
 	}
 
-	/* Sum node votes for expected */
-	if (expected_votes == 0) {
 		for (i = 1; ; i++) {
 			name = NULL;
 			memset(path, 0, MAX_PATH_LEN);
@@ -522,6 +520,8 @@
 			}
 		}
 
+	/* Sum node votes for expected */
+	if (expected_votes == 0) {
 		/* optional expected_votes supercedes vote sum */
 
 		error = ccs_get(cd, EXP_VOTES_PATH, &str);
