Index: src/test/java/org/apache/tika/parser/image/PSDParserTest.java
===================================================================
--- src/test/java/org/apache/tika/parser/image/PSDParserTest.java	(révision 1431327)
+++ src/test/java/org/apache/tika/parser/image/PSDParserTest.java	(copie de travail)
@@ -25,6 +25,8 @@
 
 import junit.framework.TestCase;
 
+import static junit.framework.Assert.assertEquals;
+
 public class PSDParserTest extends TestCase {
 
     private final Parser parser = new PSDParser();
@@ -43,4 +45,18 @@
         assertEquals("51", metadata.get(Metadata.IMAGE_LENGTH));
         assertEquals("8", metadata.get(Metadata.BITS_PER_SAMPLE));
     }
+    
+    /**
+     * Tests a very basic file, without much metadata
+     */
+    public void testOddPSD() throws Exception {
+        Metadata metadata = new Metadata();
+        metadata.set(Metadata.CONTENT_TYPE, "image/x-psd");
+        InputStream stream =
+            getClass().getResourceAsStream("/test-documents/silverProf_SuggPedago.psd");
+        parser.parse(stream, new DefaultHandler(), metadata, new ParseContext());
+        assertEquals("69", metadata.get(Metadata.IMAGE_WIDTH));
+        assertEquals("70", metadata.get(Metadata.IMAGE_LENGTH));
+        assertEquals("8", metadata.get(Metadata.BITS_PER_SAMPLE));
+    }
 }
Index: src/main/java/org/apache/tika/parser/image/PSDParser.java
===================================================================
--- src/main/java/org/apache/tika/parser/image/PSDParser.java	(révision 1431327)
+++ src/main/java/org/apache/tika/parser/image/PSDParser.java	(copie de travail)
@@ -178,6 +178,9 @@
           }
           
           int dataLen = EndianUtils.readIntBE(stream);
+          if(dataLen %2 == 1) {
+              dataLen = dataLen + 1;
+          }
           totalLength = 4 + 2 + nameLen + 4 + dataLen;
           
           data = new byte[dataLen];
