--- vte-0.15.5/src/vte.c	2004-09-21 15:06:22.000000000 +0530
+++ vte-0.15.5-new/src/vte.c	2004-09-21 15:22:35.000000000 +0530
@@ -9476,6 +9476,7 @@
 {
 	GObjectClass *gobject_class;
 	GtkWidgetClass *widget_class;
+	GtkBindingSet  *binding_set;
 
 #ifdef VTE_DEBUG
 	{
@@ -9567,6 +9568,9 @@
 	klass->text_inserted = NULL;
 	klass->text_deleted = NULL;
 	klass->text_scrolled = NULL;
+	klass->copy_clipboard = vte_terminal_copy_clipboard;
+	klass->paste_clipboard = vte_terminal_paste_clipboard;
+
 
 	/* Register some signals of our own. */
 	klass->eof_signal =
@@ -10443,6 +10443,31 @@
 			     NULL,
 			     _vte_marshal_VOID__INT,
 			     G_TYPE_NONE, 1, G_TYPE_INT);
+	klass->copy_clipboard_signal =
+		g_signal_new("copy-clipboard",
+			     G_OBJECT_CLASS_TYPE(klass),
+			     G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+			     G_STRUCT_OFFSET(VteTerminalClass, copy_clipboard),
+			     NULL,
+			     NULL,
+			     _vte_marshal_VOID__VOID,
+			     G_TYPE_NONE, 0);
+
+	klass->paste_clipboard_signal =
+		g_signal_new("paste-clipboard",
+			     G_OBJECT_CLASS_TYPE(klass),
+			     G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+			     G_STRUCT_OFFSET(VteTerminalClass, paste_clipboard),
+			     NULL,
+			     NULL,
+			     _vte_marshal_VOID__VOID,
+			     G_TYPE_NONE, 0);
+
+	/* Bind Copy, Paste, Cut keys */
+	binding_set = gtk_binding_set_by_class(klass);
+	gtk_binding_entry_add_signal(binding_set, GDK_F16, 0, "copy-clipboard",0);
+	gtk_binding_entry_add_signal(binding_set, GDK_F18, 0, "paste-clipboard", 0);
+	gtk_binding_entry_add_signal(binding_set, GDK_F20, 0, "copy-clipboard",0);
 
 	process_timer = g_timer_new ();
 }
--- vte-0.11.11/src/vte.h	2004-09-21 15:06:26.000000000 +0530
+++ vte-0.11.11-new/src/vte.h	2004-09-21 15:18:48.000000000 +0530
@@ -95,6 +95,8 @@ struct _VteTerminalClass {
 	void (*text_inserted)(VteTerminal* terminal);
 	void (*text_deleted)(VteTerminal* terminal);
 	void (*text_scrolled)(VteTerminal* terminal, gint delta);
+	void (*copy_clipboard)(VteTerminal* terminal);
+	void (*paste_clipboard)(VteTerminal* terminal);
 
 	/* Padding for future expansion. */
 	void (*vte_reserved1)(void);
@@ -137,6 +139,9 @@ struct _VteTerminalClass {
 	guint text_deleted_signal;
 	guint text_scrolled_signal;
 
+	guint copy_clipboard_signal;
+	guint paste_clipboard_signal;
+
 	guint reserved1;
 	guint reserved2;
 	guint reserved3;
