private String putStackTogether(ToWylieStack st) {
		StringBuilder out = new StringBuilder();

		// put the main elements together... stacked with "+" unless it's a regular stack
		if (tib_stack(st.cons_str)) {
			out.append(joinStrings(st.stack, ""));
		} else {
			out.append(st.cons_str);
		}

		// caret (tsa-phru) goes here as per some (halfway broken) Unicode specs...
		if (st.caret) {
			out.append("^");
		}

		// vowels...
		if (!st.vowels.isEmpty()) {
			out.append(joinStrings(st.vowels, "+"));

		} else if (!st.prefix && !st.suffix && !st.suff2 && 
				(st.cons_str.isEmpty() || st.cons_str.charAt(st.cons_str.length() - 1) != 'a')) {
			out.append("a");
		}

		// final stuff
		out.append(joinStrings(st.finals, ""));
		if (st.dot) out.append(".");

		return out.toString();
	}