diff -Naur dillo-0.8.6.orig/src/IO/about.c dillo-0.8.6/src/IO/about.c
--- dillo-0.8.6.orig/src/IO/about.c	2006-04-26 18:17:48.000000000 +0200
+++ dillo-0.8.6/src/IO/about.c	2007-02-28 17:03:41.000000000 +0100
@@ -254,6 +254,27 @@
 "<table border='0' cellpadding='5' cellspacing='1' width='100%'>\n"
 "<tr>\n"
 " <td bgcolor='#CCCCCC'>\n"
+"  <h4>Iliad port (Antartica's modifications)</h4>\n"
+"  February 26, 2007\n"
+"<tr>\n"
+" <td bgcolor='#FFFFFF'>\n"
+"  <table border='0' cellspacing='0' cellpadding='5'>\n"
+"  <tr>\n"
+"   <td>\n"
+"<p>\n"
+"<ul><li>Page scroll is now done with mouse button 1\n"
+"<li>Click on images isolates them (athough if the image is a link, it follows it). Images with an aspect ratio weirder than 1:8 and 8:1 are ignored, as they usually are page decorations.\n"
+"<li>history forward is always enabled, and if there is no more history, it tries to guess the next page, based on the numbers in the urls (actually, it just adds 1 to the last number of the URL)\n"
+"</ul>\n"
+"  </table>\n"
+"</table>\n"
+"</table>\n"
+"<br>\n"
+"\n"
+"<table border='0' cellpadding='0' cellspacing='0' align='center' bgcolor='#000000' width='100%'><tr><td>\n"
+"<table border='0' cellpadding='5' cellspacing='1' width='100%'>\n"
+"<tr>\n"
+" <td bgcolor='#CCCCCC'>\n"
 "  <h4>Release overview</h4>\n"
 "  April 26, 2006\n"
 "<tr>\n"
diff -Naur dillo-0.8.6.orig/src/dw_gtk_scrolled_frame.c dillo-0.8.6/src/dw_gtk_scrolled_frame.c
--- dillo-0.8.6.orig/src/dw_gtk_scrolled_frame.c	2006-01-02 19:18:34.000000000 +0100
+++ dillo-0.8.6/src/dw_gtk_scrolled_frame.c	2007-02-26 13:50:29.000000000 +0100
@@ -562,7 +562,7 @@
    if (!GTK_WIDGET_HAS_FOCUS (widget))
       gtk_widget_grab_focus (widget);
 
-   if (event->button == 2) {
+   if (event->button == 1) {
       frame = GTK_DW_SCROLLED_FRAME (widget);
 
       frame->button2_pressed = TRUE;
@@ -570,7 +570,7 @@
       frame->start_lmy = event->y;
 
       gdk_pointer_grab (widget->window, FALSE,
-                        GDK_BUTTON_RELEASE_MASK | GDK_BUTTON2_MOTION_MASK,
+                        GDK_BUTTON_RELEASE_MASK | GDK_BUTTON1_MOTION_MASK,
                         NULL, frame->drag_cursor, event->time);
 
    }
@@ -601,7 +601,7 @@
 
    /* frame->button2_pressed makes sure that the button was pressed
       in the GtkDwScrolledFrame */
-   if ((event->state & GDK_BUTTON2_MASK) && frame->button2_pressed) {
+   if ((event->state & GDK_BUTTON1_MASK) && frame->button2_pressed) {
       Dw_gtk_scrolled_frame_move_by (frame,
                                      frame->start_lmx - event->x,
                                      frame->start_lmy - event->y);
diff -Naur dillo-0.8.6.orig/src/html.c dillo-0.8.6/src/html.c
--- dillo-0.8.6.orig/src/html.c	2006-04-12 17:50:35.000000000 +0200
+++ dillo-0.8.6/src/html.c	2007-02-28 13:14:52.000000000 +0100
@@ -407,6 +407,10 @@
       gtk_menu_popup(GTK_MENU(bw->menu_popup.over_image), NULL, NULL,
                      NULL, NULL, event->button, event->time);
       return TRUE;
+   } else if(event->button == 1 && image->url && 
+		   ( (image->height*8)>image->width && 
+		      image->height<(image->width*8) ) ) {
+     a_Nav_push(bw, image->url);
    }
 
    return FALSE;
diff -Naur dillo-0.8.6.orig/src/interface.c dillo-0.8.6/src/interface.c
--- dillo-0.8.6.orig/src/interface.c	2005-12-02 13:40:44.000000000 +0100
+++ dillo-0.8.6/src/interface.c	2007-02-26 17:05:28.000000000 +0100
@@ -183,8 +183,7 @@
    /* Back and Forward buttons */
    back_sensitive = a_Nav_stack_ptr(bw) > 0;
    gtk_widget_set_sensitive(bw->back_button, back_sensitive);
-   forw_sensitive = (a_Nav_stack_ptr(bw) < a_Nav_stack_size(bw) - 1 &&
-                     !bw->nav_expecting);
+   forw_sensitive = 1;
    gtk_widget_set_sensitive(bw->forw_button, forw_sensitive);
 
    bw->sens_idle_id = 0;
@@ -871,7 +870,7 @@
                       GTK_SIGNAL_FUNC(Interface_quit), bw);
    gtk_container_border_width(GTK_CONTAINER(bw->main_window), 0);
 
-   gtk_window_set_wmclass(GTK_WINDOW(bw->main_window), "dillo", "Dillo");
+   gtk_window_set_wmclass(GTK_WINDOW(bw->main_window), "sh", "sh");
 
    /* -RL :: I must realize the window to see it correctly */
    gtk_widget_realize(bw->main_window);
diff -Naur dillo-0.8.6.orig/src/nav.c dillo-0.8.6/src/nav.c
--- dillo-0.8.6.orig/src/nav.c	2006-01-02 19:17:23.000000000 +0100
+++ dillo-0.8.6/src/nav.c	2007-02-28 17:00:57.000000000 +0100
@@ -306,7 +306,7 @@
 /*
  * Send the browser to next page in the history list
  */
-void a_Nav_forw(BrowserWindow *bw)
+void a_Nav_forw2(BrowserWindow *bw)
 {
    gint idx = a_Nav_stack_ptr(bw);
 
@@ -318,6 +318,59 @@
 }
 
 /*
+ * Increment the last digit of the last number in the URL 
+ * Sorry for the code: it's a quick hack.
+ */
+
+void a_Nav_forw(BrowserWindow *bw)
+{
+	int forw_sensitive;
+	DilloUrl *new;
+	gchar *str;
+	gint i,n;
+	/* check if there are pages in the history */
+	forw_sensitive = (a_Nav_stack_ptr(bw) < a_Nav_stack_size(bw) - 1 &&
+			                     !bw->nav_expecting);
+	if(forw_sensitive) {
+		a_Nav_forw2(bw);
+		return;
+	}
+	/* get the current url and serach for the last number */
+	str=malloc(strlen(a_Url_str(a_History_get_url(NAV_IDX(bw,a_Nav_stack_ptr(bw))))));
+	strcpy(str,a_Url_str(a_History_get_url(NAV_IDX(bw,a_Nav_stack_ptr(bw)))));
+	for(i=0;str[i]!='\0';i++)
+		;
+	for(;i>=0;i--) {
+		if(str[i]>='0' && str[i]<='9')
+			break;
+	}
+	if(i<0)
+		return; /* no numbers in URL */
+	/* add 1 to the last number of the URL, enlarging its length is neccessary */	
+	n=1;
+	do {
+		str[i]=str[i]+n;
+		if(str[i]>'9')
+			str[i]='0',n=1;
+		else
+			n=0;
+		i--;
+	} while(i>=0 && n>0 && str[i]>='0' && str[i]<='9');	
+	if(n>0) {
+		i++;
+		memmove(str+i+1,str+i,strlen(str+i));
+		str[i]=n+'0';
+		n=0;
+	}
+	/* Push the new URL into the history to make dillo load it */
+	new=a_Url_new(str,NULL, 0, 0, 0);
+   	a_Nav_push(bw, new);
+	a_Url_free(new);
+	free(str);
+}
+
+
+/*
  * Redirect the browser to the HOME page!
  */
 void a_Nav_home(BrowserWindow *bw)
@@ -388,7 +441,7 @@
       a_Url_set_flags(ReqURL, URL_FLAGS(ReqURL) | URL_E2EReload);
       /* This is an explicit reload, so clear the SpamSafe flag */
       a_Url_set_flags(ReqURL, URL_FLAGS(ReqURL) & ~URL_SpamSafe);
-      Nav_open_url(bw, ReqURL, 0);
+      Nav_open_url(bw, ReqURL, 1);
       a_Url_free(ReqURL);
    }
 }
diff -Naur dillo-0.8.6.orig/src/selection.c dillo-0.8.6/src/selection.c
--- dillo-0.8.6.orig/src/selection.c	2006-01-02 19:16:32.000000000 +0100
+++ dillo-0.8.6/src/selection.c	2007-02-26 13:48:38.000000000 +0100
@@ -142,7 +142,7 @@
    a_Dw_widget_print_tree (GTK_DW_VIEWPORT(it->widget->viewport)->child);
 #endif
 
-   if (event && event->button == 1 &&
+   if (event && event->button == 2 &&
        !within_content && event->type == GDK_2BUTTON_PRESS) {
       /* When the user double-clicks on empty parts, call the callback
        * function instead of normal processing. Used for full screen
@@ -180,7 +180,7 @@
          }
       } else {
          /* normal selection handling */
-         if (event && event->button == 1) {
+         if (event && event->button == 2) {
             Selection_highlight (selection, FALSE);
             Selection_reset_selection (selection);
 
@@ -239,7 +239,7 @@
                                   "link_clicked", link, -1, -1, event,
                                   &dummy);
       } else {
-         if (event->button == 1)
+         if (event->button == 2)
             /* Reset links and switch to selection mode. The selection
              * state will be set to SELECTING, which is handled some lines
              * below. */
@@ -248,7 +248,7 @@
    }
 
    if (selection->selection_state == SELECTION_SELECTING &&
-       event && event->button == 1) {
+       event && event->button == 2) {
       /* normal selection */
       ret = TRUE;
       Selection_adjust_selection (selection, it, char_pos);

