- if( $action == 'view' && !$request->getVal( 'oldid' ) &&
- $request->getVal( 'redirect' ) != 'no' ) {
-
- $dbr = wfGetDB(DB_SLAVE);
- $article->loadPageData($article->pageDataFromTitle($dbr, $title));
-
- /* Follow redirects only for... redirects */
- if ($article->mIsRedirect) {
+ // Check for redirects ...
+ $file = $title->getNamespace() == NS_IMAGE ? $article->getFile() : null;
+ if( ( $action == 'view' || $action == 'render' ) // ... for actions that show content
+ && !$request->getVal( 'oldid' ) && // ... and are not old revisions
+ $request->getVal( 'redirect' ) != 'no' && // ... unless explicitly told not to
+ // ... and the article is not an image page with associated file
+ !( is_object( $file ) && $file->exists() &&
+ !$file->getRedirected() ) ) { // ... unless it is really an image redirect
+
+ $dbr = wfGetDB( DB_SLAVE );
+ $article->loadPageData( $article->pageDataFromTitle( $dbr, $title ) );
+
+ // Follow redirects only for... redirects
+ if( $article->isRedirect() ) {