Index: class_image.inc
===================================================================
--- class_image.inc	(revision 869)
+++ class_image.inc	(working copy)
@@ -126,10 +126,15 @@
         //dump_msg($node->content);
         $request = ($_GET['size']) ? $_GET['size'] : 'preview';
         $image = $node->content['image']['#value'];
+        $size = _image_get_sizes(IMAGE_ORIGINAL);
         // if we are not viewing the original, link to the original
-        if (user_access('view original images') &&
-                ($node->images[$request] != $node->images[IMAGE_ORIGINAL])) {
-            $image = l($image, "node/{$node->nid}", array(), 'size=_original', null, null, true);
+        if (user_access('view original images') && ($node->images[$request] != $node->images[IMAGE_ORIGINAL]) && $size['link']) {
+            if ($size['link'] == IMAGE_LINK_NEW) {
+              $image = l($image, "image/view/{$node->nid}/_original", array('target' => '_blank'), null, null, null, true);
+            }
+            else {
+              $image = l($image, "node/{$node->nid}", array(), 'size=_original', null, null, true);
+            }
         }
         $node->content['image']['#value'] = theme('acidfree_view_image', $image);
     }
