diff -ur /usr/src/mediawiki-1.11.0/includes/DefaultSettings.php /var/lib/mediawiki1.11/includes/DefaultSettings.php
--- /usr/src/mediawiki-1.11.0/includes/DefaultSettings.php	2007-09-10 17:36:51.000000000 -0400
+++ /var/lib/mediawiki1.11/includes/DefaultSettings.php	2007-12-20 22:43:17.000000000 -0500
@@ -1467,7 +1467,9 @@
  * extension=extensions/php_mbstring.dll
  * extension=extensions/php_exif.dll
  */
-$wgShowEXIF = function_exists( 'exif_read_data' );
+/* Note that we need to put this somewhere:
+  $wgShowEXIF = function_exists( 'exif_read_data' ); */
+$wgShowImageMetadata = 1;
 
 /**
  * Set to true to enable the upload _link_ while local uploads are disabled.
diff -ur /usr/src/mediawiki-1.11.0/includes/ImagePage.php /var/lib/mediawiki1.11/includes/ImagePage.php
--- /usr/src/mediawiki-1.11.0/includes/ImagePage.php	2007-08-30 22:51:23.000000000 -0400
+++ /var/lib/mediawiki1.11/includes/ImagePage.php	2008-01-15 21:20:49.000000000 -0500
@@ -39,7 +39,7 @@
 	}
 
 	function view() {
-		global $wgOut, $wgShowEXIF, $wgRequest, $wgUser;
+		global $wgOut, $wgShowImageMetadata, $wgRequest, $wgUser;
 
 		$diff = $wgRequest->getVal( 'diff' );
 		$diffOnly = $wgRequest->getBool( 'diffonly', $wgUser->getOption( 'diffonly' ) );
@@ -47,7 +47,7 @@
 		if ( $this->mTitle->getNamespace() != NS_IMAGE || ( isset( $diff ) && $diffOnly ) )
 			return Article::view();
 
-		if ($wgShowEXIF && $this->img->exists()) {
+		if ($wgShowImageMetadata && $this->img->exists()) {
 			// FIXME: bad interface, see note on MediaHandler::formatMetadata(). 
 			$formattedMetadata = $this->img->formatMetadata();
 			$showmeta = $formattedMetadata !== false;
diff -ur /usr/src/mediawiki-1.11.0/includes/media/Bitmap.php /var/lib/mediawiki1.11/includes/media/Bitmap.php
--- /usr/src/mediawiki-1.11.0/includes/media/Bitmap.php	2007-08-30 22:51:23.000000000 -0400
+++ /var/lib/mediawiki1.11/includes/media/Bitmap.php	2007-12-20 22:44:35.000000000 -0500
@@ -212,8 +212,8 @@
 
 
 	function getMetadata( $image, $filename ) {
-		global $wgShowEXIF;
-		if( $wgShowEXIF && file_exists( $filename ) ) {
+		global $wgShowImageMetadata;
+		if( $wgShowImageMetadata && file_exists( $filename ) ) {
 			$exif = new Exif( $filename );
 			$data = $exif->getFilteredData();
 			if ( $data ) {
@@ -232,8 +232,8 @@
 	}
 
 	function isMetadataValid( $image, $metadata ) {
-		global $wgShowEXIF;
-		if ( !$wgShowEXIF ) {
+		global $wgShowImageMetadata;
+		if ( !$wgShowImageMetadata ) {
 			# Metadata disabled and so an empty field is expected
 			return true;
 		}
diff -ur /usr/src/mediawiki-1.11.0/includes/media/SVG.php /var/lib/mediawiki1.11/includes/media/SVG.php
--- /usr/src/mediawiki-1.11.0/includes/media/SVG.php	2007-08-30 22:51:23.000000000 -0400
+++ /var/lib/mediawiki1.11/includes/media/SVG.php	2008-01-15 21:20:48.000000000 -0500
@@ -97,6 +97,149 @@
 		return wfMsg( 'svg-long-desc', $file->getWidth(), $file->getHeight(), 
 			$wgLang->formatSize( $file->getSize() ) );
 	}
-}
 
+	function getMetadataType( $image ) {
+                # no it isn't
+		return 'exif';
+	}
+
+	function isMetadataValid( $image, $metadata ) {
+		return true;
+	}
+
+	/**
+	 * Get a list of EXIF metadata items which should be displayed when
+	 * the metadata table is collapsed.
+	 *
+	 * @return array of strings
+	 * @access private
+	 */
+	function visibleMetadataFields() {
+		$fields = array();
+		$lines = explode( "\n", wfMsgForContent( 'metadata-fields' ) );
+		foreach( $lines as $line ) {
+			$matches = array();
+			if( preg_match( '/^\\*\s*(.*?)\s*$/', $line, $matches ) ) {
+				$fields[] = $matches[1];
+			}
+		}
+		$fields = array_map( 'strtolower', $fields );
+		return $fields;
+	}
+
+	function formatMetadata( $image ) {
+
+                $meta_to_ignore = array(
+                   'rdf:RDF'=>1,
+                   'cc:Work'=>1,
+                   'dc:format'=>1,
+                   'cc:License'=>1, // but not cc:license
+                 );
+
+                $result = array();
+                $reading_metadata = FALSE;
+                $current_metadata_name = null;
+                $current_metadata_value = '';
+
+                // TODO: Explain why we're using XMLReader and not regexes
+                $xml = new XMLReader();
+                $xml->open($image->getPath());
+                while ($xml->read()) {
+
+                  switch ($xml->nodeType) {
+                  case XMLReader::ELEMENT:
+                    if ($reading_metadata) {
+                      if (!$current_metadata_name && !$meta_to_ignore{$xml->name}) {
+
+                        if ($xml->isEmptyElement) {
+
+                          if ($xml->name == 'cc:license') {
+                            self::addMeta( $result,
+                              'visible',
+                              'svgmeta',
+                              $xml->name,
+                              wfMsg('license='.$xml->getAttribute('rdf:resource')));
+                          }
+
+                        } else {
+                          $current_metadata_name = $xml->name;
+                          $current_metadata_value = '';
+                        }
+                      }
+                    } else if ($xml->name == "metadata") {
+                      $reading_metadata = TRUE;
+                    } else if ($xml->name == "svg") {
+                      // start of file; ignore it
+                    } else {
+                      // starting something which isn't metadata at
+                      // the start of the file; assume there's no
+                      // metadata
+                      break 2; // ugh, why no labels in PHP?
+                    }
+                    break;
+
+                  case XMLReader::TEXT:
+                    if ($current_metadata_name) {
+                      $current_metadata_value .= $xml->value;
+                    }
+                    break;
+
+                  case XMLReader::END_ELEMENT:
+                    if ($current_metadata_name && $xml->name == $current_metadata_name) {
+
+                      self::addMeta( $result,
+                        'visible',
+                        'svgmeta',
+                        $current_metadata_name,
+                        $current_metadata_value
+                      );
+                      $current_metadata_name = null;
+                      $current_metadata_value = '';
+
+                    } else if ($xml->name == "metadata") {
+                      // assume sane nesting
+                      break 2;
+                    }
+                    break;
+
+                  }
+                }
+                $xml->close();
+
+                return $result;
+
+		$result = array(
+			'visible' => array(),
+			'collapsed' => array()
+		);
+		$metadata = $image->getMetadata();
+		if ( !$metadata ) {
+			return false;
+		}
+		$exif = unserialize( $metadata );
+		if ( !$exif ) {
+			return false;
+		}
+		unset( $exif['MEDIAWIKI_EXIF_VERSION'] );
+		$format = new FormatExif( $exif );
+
+		$formatted = $format->getFormattedData();
+		// Sort fields into visible and collapsed
+		$visibleFields = $this->visibleMetadataFields();
+		foreach ( $formatted as $name => $value ) {
+			$tag = strtolower( $name );
+			self::addMeta( $result,
+				in_array( $tag, $visibleFields ) ? 'visible' : 'collapsed',
+				'exif',
+				$tag,
+				$value
+			);
+		}
+		return $result;
+	}
+
+}
 
Only in /var/lib/mediawiki1.11/includes/media: SVG.php~
Only in /usr/src/mediawiki-1.11.0/includes: SvgMetadata.php
Only in /usr/src/mediawiki-1.11.0/includes: .SvgMetadata.php.swp
diff -ur /usr/src/mediawiki-1.11.0/languages/messages/MessagesEn.php /var/lib/mediawiki1.11/languages/messages/MessagesEn.php
--- /usr/src/mediawiki-1.11.0/languages/messages/MessagesEn.php	2007-09-04 10:39:55.000000000 -0400
+++ /var/lib/mediawiki1.11/languages/messages/MessagesEn.php	2008-01-15 21:20:46.000000000 -0500
@@ -2782,6 +2782,21 @@
 'exif-gpsspeed-m' => 'Miles per hour',
 'exif-gpsspeed-n' => 'Knots',
 
+# SVG metadata
+'svgmeta-cc:license' => 'License',
+'svgmeta-dc:title' => 'Title',
+'svgmeta-dc:date' => 'Date',
+'svgmeta-dc:creator' => 'Creator',
+'svgmeta-dc:publisher' => 'Publisher',
+'svgmeta-dc:language' => 'Language',
+'svgmeta-dc:subject' => 'Subject',
+'svgmeta-dc:description' => 'Description',
+'svgmeta-dc:contributor' => 'Contributor',
+
+# Creative Commons licenses (as used in SVG metadata)
+'license=http://web.resource.org/cc/PublicDomain' => 'Public domain',
+# ...and others
+
 # Pseudotags used for GPSTrackRef, GPSImgDirectionRef and GPSDestBearingRef
 'exif-gpsdirection-t' => 'True direction',
 'exif-gpsdirection-m' => 'Magnetic direction',
Only in /var/lib/mediawiki1.11/: LocalSettings.php
Only in /var/lib/mediawiki1.11/: .LocalSettings.php.swp
Only in /var/lib/mediawiki1.11/: .swp
