private static boolean votingPhase(Registry registry, LogItem logItem)
	{
		boolean success = true;
		
		try
		{
			boolean failedServer = false;
			ICoreServer primary = null;
	
			for (String serverName : registry.list())
			{
				//For every server, check it is alright to commit, and pass it the log
				try {
					ICoreServer currentServer = ((ICoreServer)registry.lookup(serverName));
					if (currentServer.inService()) {
						//Store a reference to the primary to tell it to start logging later
						if (currentServer.getState() == ServerState.PRIMARY)
							primary = currentServer;
		
						if (!currentServer.isReadyToCommit(logItem))
						{
							success = false;
							break;
						}
					}
				}
				catch (Exception e) {
					failedServer = true;
					try {
						//e.printStackTrace();
						ServerHelper.removeServer(registry, serverName);
					} catch (NotBoundException e1) {
						System.out.println("Server already removed");
					}
				}
			}
	
			//If we've come across any failed servers, prompt the primary to log
			if (failedServer)
			{
				if (primary != null) {
					primary.startLogging();
				}
			}
	
			return success;
		}
		catch (RemoteException e)
		{
			//Failed to get the registry and send to everyone
			return false;
		}
	}