diff -urNad aterm-1.0.1~/src/rxvt.h src/rxvt.h
--- src/rxvt.h	2007-08-03 23:55:28.000000000 +0200
+++ src/rxvt.h	2007-08-03 23:56:36.000000000 +0200
@@ -784,6 +784,7 @@
 #define Opt_scrollKeypress	(1LU<<12)
 #define Opt_transparent		(1LU<<13)
 #define Opt_transparent_sb	(1LU<<14)
+#define Opt_cutToBeginningOfLine (1LU<<15)
 #define Opt_borderLess		(1LU<<16)
 
 /* place holder used for parsing command-line options */
diff -urNad aterm-1.0.1~/src/screen.c src/screen.c
--- aterm-1.0.1~/src/screen.c	2007-08-03 23:55:28.000000000 +0200
+++ src/screen.c	2007-08-04 00:02:35.000000000 +0200
@@ -3155,7 +3155,7 @@
     text_t         *stp;
     rend_t         *srp;
 
-    if (selection.clicks != 2)
+    if (selection.clicks < 2)
 	return;			/* Go away: we only handle double clicks */
 
     if (dirn == UP) {
@@ -3454,7 +3454,11 @@
     } else if (selection.clicks == 3) {
 	if (ROWCOL_IS_AFTER(selection.mark, selection.beg))
 	    selection.mark.col++;
-	selection.beg.col = 0;
+	if (Options & Opt_cutToBeginningOfLine) {
+		selection_delimit_word(UP, &(selection.beg), &(selection.beg));
+	} else {
+		selection.beg.col = 0;
+	}
 	selection.end.col = TermWin.bcol;
     }
     if (button3 && buttonpress) {	/* mark may need to be changed */
diff -urNad aterm-1.0.1~/src/xdefaults.c src/xdefaults.c
--- aterm-1.0.1~/src/xdefaults.c	2007-08-03 23:55:28.000000000 +0200
+++ src/xdefaults.c	2007-08-04 00:03:23.000000000 +0200
@@ -70,6 +70,7 @@
 #endif
 static const char *rs_visualBell = NULL;
 static const char *rs_reverseVideo = NULL;
+static const char *rs_cutToBeginningOfLine = NULL;
 
 #ifdef META8_OPTION
 static const char *rs_meta8 = NULL;
@@ -327,6 +328,8 @@
     BOOL(rs_utmpInhibit, "utmpInhibit", "ut", Opt_utmpInhibit,
          "utmp inhibit"),
     BOOL(rs_visualBell, "visualBell", "vb", Opt_visualBell, "visual bell"),
+	BOOL(rs_cutToBeginningOfLine, "cutToBeginningOfLine", "cb", Opt_cutToBeginningOfLine,
+			"cut to beginning of line"),
 
 #ifndef NO_MAPALERT
 # ifdef MAPALERT_OPTION
