Index: trunk/roundcubemail/program/lib/imap.inc
===================================================================
--- trunk/roundcubemail/program/lib/imap.inc	(revision 2735)
+++ trunk/roundcubemail/program/lib/imap.inc	(revision 2738)
@@ -2250,5 +2250,5 @@
 				$result = substr($line, $from, $len);
 			}
-	    
+
         		if ($mode == 1)
 				$result = base64_decode($result);
@@ -2266,5 +2266,5 @@
         		$bytes    = (int)$sizeStr;
 			$prev	  = '';
-			
+
         		while ($bytes > 0) {
     		                $line      = iil_ReadLine($fp, 1024);
@@ -2330,5 +2330,5 @@
         			$line = iil_ReadLine($fp, 1024);
 			} while (!iil_StartsWith($line, $key, true));
-        
+
     		if ($result) {
 	    		$result = rtrim($result, "\t\r\n\0\x0B");
@@ -2339,7 +2339,7 @@
 			} else
 				return $result; // substr($result, 0, strlen($result)-1);
+
+			return true;
     		}
-    		
-		return true;
 	}
     
@@ -2481,10 +2481,9 @@
 				$line = iil_ReadLine($fp, 5000);
 				$line = iil_MultLine($fp, $line);
-				list(, $index, $cmd, $rest) = explode(' ', $line);
-				if ($cmd != 'FETCH' || $index == $id || preg_match("/^$key/", $line))
+				if (!preg_match("/^$key/", $line))
 					$result .= $line;
 			} while (!preg_match("/^$key/", $line));
 
-			$result = trim(substr($result, strpos($result, 'BODYSTRUCTURE')+13, -(strlen($result)-strrpos($result, $key)+1)));
+			$result = trim(substr($result, strpos($result, 'BODYSTRUCTURE')+13, -1));
 		}
 	}
