diff -pru dillo/dillorc dillo.dicache-new/dillorc
--- dillo/dillorc	Fri Oct 19 14:19:41 2001
+++ dillo.dicache-new/dillorc	Sat Nov 10 12:24:29 2001
@@ -56,4 +56,8 @@ small_icons=NO
 # width (may be useful for iPAQ)
 limit_text_width=NO
 
+# Dicache is where the Decompressed Images are cached (not the original ones).
+# If you have a lot of memory and a slow CPU, use YES, otherwise use NO
+use_dicache=NO
+
 # dillorc ends here.
diff -pru dillo/src/dicache.c dillo.dicache-new/src/dicache.c
--- dillo/src/dicache.c	Fri Nov  9 16:12:15 2001
+++ dillo.dicache-new/src/dicache.c	Sat Nov 10 11:25:59 2001
@@ -20,6 +20,7 @@
 #include "dicache.h"
 #include "cache.h"
 #include "interface.h"
+#include "prefs.h"
 
 typedef struct _DICacheHashEntry DICacheHashEntry;
 
@@ -194,7 +195,7 @@ void a_Dicache_unref(const DilloUrl *Url
    DICacheEntry *entry = NULL;
 
    if ( (entry = Dicache_get_entry_version(Url, version)) )
-      if (--entry->RefCount == 0 && entry->next)
+      if (--entry->RefCount == 0 && (entry->next || !prefs.use_dicache) )
          Dicache_remove(Url, version);
 }
 
diff -pru dillo/src/jpeg.c dillo.dicache-new/src/jpeg.c
--- dillo/src/jpeg.c	Fri Nov  9 16:12:16 2001
+++ dillo.dicache-new/src/jpeg.c	Sat Nov 10 12:25:17 2001
@@ -131,8 +131,6 @@ static void Jpeg_close(DilloJpeg *jpeg, 
    if (jpeg->state != DILLO_JPEG_DONE) {
       jpeg_destroy_decompress(&(jpeg->cinfo));
    }
-   /*   if (jpeg->url)
-	a_Url_free(jpeg->url); */
    g_free(jpeg);
 }
 
diff -pru dillo/src/prefs.c dillo.dicache-new/src/prefs.c
--- dillo/src/prefs.c	Thu Sep 20 19:14:16 2001
+++ dillo.dicache-new/src/prefs.c	Sat Nov 10 11:28:23 2001
@@ -49,7 +49,8 @@ static const struct {
    { "panel_size", DRC_TOKEN_PANEL_SIZE },
    { "small_icons", DRC_TOKEN_SMALL_ICONS },
    { "limit_text_width", DRC_TOKEN_LIMIT_TEXT_WIDTH },
-   { "font_factor", DRC_TOKEN_FONT_FACTOR }
+   { "font_factor", DRC_TOKEN_FONT_FACTOR },
+   { "use_dicache", DRC_TOKEN_USE_DICACHE }
 };
 
 static const guint n_symbols = sizeof (symbols) / sizeof (symbols[0]);
@@ -144,6 +145,8 @@ static guint Prefs_parser(GScanner *scan
    case DRC_TOKEN_LIMIT_TEXT_WIDTH:
       prefs.limit_text_width = (strcmp(scanner->value.v_string, "YES") == 0);
       break;
+   case DRC_TOKEN_USE_DICACHE:
+      prefs.use_dicache = (strcmp(scanner->value.v_string, "YES") == 0);
    default:
       break;   /* Not reached */
    }
@@ -250,6 +253,7 @@ void a_Prefs_init(void)
    prefs.small_icons = FALSE;
    prefs.limit_text_width = FALSE;
    prefs.font_factor = 1.0;
+   prefs.use_dicache = FALSE;
    Prefs_load();
 }
 
diff -pru dillo/src/prefs.h dillo.dicache-new/src/prefs.h
--- dillo/src/prefs.h	Wed Jun 27 10:27:02 2001
+++ dillo.dicache-new/src/prefs.h	Sat Nov 10 11:28:53 2001
@@ -41,6 +41,7 @@ typedef enum {
    DRC_TOKEN_FONT_FACTOR,
    DRC_TOKEN_SHOW_ALT,
    DRC_TOKEN_LIMIT_TEXT_WIDTH,
+   DRC_TOKEN_USE_DICACHE,
    DRC_TOKEN_LAST
 } Dillo_Rc_TokenType;
 
@@ -64,6 +65,7 @@ struct _DilloPrefs {
    gboolean small_icons;
    gboolean limit_text_width;
    gdouble font_factor;
+   gboolean use_dicache;
 };
 
 /* Global Data */

