diff -aur vte-0.32.2-old/src/vte.c vte-0.32.2/src/vte.c
--- vte-0.32.2-old/src/vte.c	2012-07-09 22:28:18.307063631 -0400
+++ vte-0.32.2/src/vte.c	2012-07-09 22:31:58.323320464 -0400
@@ -14567,6 +14567,51 @@
 	}
 }
 
+/**
+ * vte_terminal_get_selection_block_mode:
+ * @terminal: a #VteTerminal
+ *
+ * Checks whether or not block selection is enabled.
+ *
+ * Returns: %TRUE if block selection is enabled, %FALSE if not
+ */
+gboolean
+vte_terminal_get_selection_block_mode(VteTerminal *terminal) {
+	g_return_val_if_fail(VTE_IS_TERMINAL(terminal), FALSE);
+	return terminal->pvt->selection_block_mode;
+}
+
+/**
+ * vte_terminal_set_selection_block_mode:
+ * @terminal: a #VteTerminal
+ * @block_mode: whether block selection is enabled
+ *
+ * Sets whether or not block selection is enabled.
+ */
+void
+vte_terminal_set_selection_block_mode(VteTerminal *terminal, gboolean block_mode) {
+	g_return_if_fail(VTE_IS_TERMINAL(terminal));
+	terminal->pvt->selection_block_mode = block_mode;
+}
+
+/**
+ * vte_terminal_select_text:
+ * @terminal: a #VteTerminal
+ * @start_col: the starting column for the selection
+ * @start_row: the starting row for the selection
+ * @end_col: the end column for the selection
+ * @end_row: the end row for the selection
+ *
+ * Sets the current selection region.
+ */
+void
+vte_terminal_select_text(VteTerminal *terminal,
+			 long start_col, long start_row,
+			 long end_col, long end_row) {
+	_vte_terminal_select_text(terminal, start_col, start_row, end_col, end_row, 0, 0);
+}
+
+
 void
 _vte_terminal_select_text(VteTerminal *terminal,
 			  long start_col, long start_row,
diff -aur vte-0.32.2-old/src/vte.h vte-0.32.2/src/vte.h
--- vte-0.32.2-old/src/vte.h	2012-07-09 22:28:18.307063631 -0400
+++ vte-0.32.2/src/vte.h	2012-07-09 22:28:21.587107210 -0400
@@ -296,6 +296,11 @@
 /* simple manipulation of selection */
 void vte_terminal_select_all(VteTerminal *terminal);
 void vte_terminal_select_none(VteTerminal *terminal);
+gboolean vte_terminal_get_selection_block_mode(VteTerminal *terminal);
+void vte_terminal_set_selection_block_mode(VteTerminal *terminal, gboolean block_mode);
+void vte_terminal_select_text(VteTerminal *terminal,
+                              long start_col, long start_row,
+                              long end_col, long end_row);
 
 /* Set the terminal's size. */
 void vte_terminal_set_size(VteTerminal *terminal,
