Index: src/db.c
==================================================================
--- src/db.c
+++ src/db.c
@@ -1778,10 +1778,11 @@
   { "gdiff-command", 0,               16, 0, "gdiff"               },
   { "gmerge-command",0,               40, 0, ""                    },
   { "https-login",   0,                0, 0, "off"                 },
   { "ignore-glob",   0,               40, 1, ""                    },
   { "empty-dirs",    0,               40, 1, ""                    },
+  { "href-targets",  0,                0, 0, "on"                  },
   { "http-port",     0,               16, 0, "8080"                },
   { "localauth",     0,                0, 0, "off"                 },
   { "main-branch",   0,               40, 0, "trunk"               },
   { "manifest",      0,                0, 1, "off"                 },
   { "max-upload",    0,               25, 0, "250000"              },

Index: src/diff.c
==================================================================
--- src/diff.c
+++ src/diff.c
@@ -951,10 +951,13 @@
   Blob toAnnotate;     /* Text of the final (mid) version of the file */
   Blob step;           /* Text of previous revision */
   int rid;             /* Artifact ID of the file being annotated */
   char *zLabel;        /* Label to apply to a line */
   Stmt q;              /* Query returning all ancestor versions */
+  const char *zInfoTarget;     /* String for target info window */
+
+  zInfoTarget = db_get_boolean("href-targets", 1) ? "target='infowindow'" : "";
 
   /* Initialize the annotation */
   rid = db_int(0, "SELECT fid FROM mlink WHERE mid=%d AND fnid=%d",mid,fnid);
   if( rid==0 ){
     fossil_panic("file #%d is unchanged in manifest #%d", fnid, mid);
@@ -987,12 +990,14 @@
     const char *zUuid = db_column_text(&q, 1);
     const char *zDate = db_column_text(&q, 2);
     const char *zUser = db_column_text(&q, 3);
     if( webLabel ){
       zLabel = mprintf(
-          "<a href='%s/info/%s' target='infowindow'>%.10s</a> %s %9.9s", 
-          g.zTop, zUuid, zUuid, zDate, zUser
+          "<a href='%s/info/%s' %s>%.10s</a> %s %9.9s", 
+          g.zTop, zUuid,
+          zInfoTarget,
+          zUuid, zDate, zUser
       );
     }else{
       zLabel = mprintf("%.10s %s %9.9s", zUuid, zDate, zUser);
     }
     p->nVers++;

Index: src/timeline.c
==================================================================
--- src/timeline.c
+++ src/timeline.c
@@ -202,18 +202,21 @@
   GraphContext *pGraph = 0;
   int prevWasDivider = 0;     /* True if previous output row was <hr> */
   int fchngQueryInit = 0;     /* True if fchngQuery is initialized */
   Stmt fchngQuery;            /* Query for file changes on check-ins */
   static Stmt qbranch;
+  const char *zDiffTarget;    /* String for the target diff window */
 
   zPrevDate[0] = 0;
   mxWikiLen = db_get_int("timeline-max-comment", 0);
   if( db_get_boolean("timeline-block-markup", 0) ){
     wikiFlags = WIKI_INLINE;
   }else{
     wikiFlags = WIKI_INLINE | WIKI_NOBLOCK;
   }
+  zDiffTarget = db_get_boolean("href-targets", 1) ?
+      "target=\"diffwindow\"": "";
   if( tmFlags & TIMELINE_GRAPH ){
     pGraph = graph_init();
     /* style is not moved to css, because this is
     ** a technical div for the timeline graph
     */
@@ -428,25 +431,25 @@
           inUl = 1;
         }
         if( isNew ){
           @ <li> %h(zFilename) (new file) &nbsp;
           @ <a href="%s(g.zTop)/artifact/%S(zNew)"
-          @ target="diffwindow">[view]</a></li>
+          @ %s(zDiffTarget)>[view]</a></li>
         }else if( isDel ){
           @ <li> %h(zFilename) (deleted)</li>
         }else if( fossil_strcmp(zOld,zNew)==0 && zOldName!=0 ){
           @ <li> %h(zOldName) &rarr; %h(zFilename)
           @ <a href="%s(g.zTop)/artifact/%S(zNew)"
-          @ target="diffwindow">[view]</a></li>
+          @ %s(zDiffTarget)>[view]</a></li>
         }else{
           if( zOldName!=0 ){
             @ <li> %h(zOldName) &rarr; %h(zFilename)
           }else{
             @ <li> %h(zFilename) &nbsp;
           }
           @ <a href="%s(g.zTop)/fdiff?v1=%S(zOld)&v2=%S(zNew)"
-          @ target="diffwindow">[diff]</a></li>
+          @ %s(zDiffTarget)>[diff]</a></li>
         }
       }
       db_reset(&fchngQuery);
       if( inUl ){
         @ </ul>