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);