diff --git wp-includes/pomo/po.php wp-includes/pomo/po.php
index 65d65ff..6f06148 100644
--- wp-includes/pomo/po.php
+++ wp-includes/pomo/po.php
@@ -280,6 +280,15 @@ class PO extends Gettext_Translations {
 	}
 
 	/**
+	 * Helper function for read_entry
+	 * @param string $context
+	 * @return bool
+	 */
+	private static function isMsgStr($context) {
+		return ($context === 'msgstr') || ($context === 'msgstr_plural');
+	}
+
+	/**
 	 * @param resource $f
 	 * @param int      $lineno
 	 * @return null|false|array
@@ -290,13 +299,12 @@ class PO extends Gettext_Translations {
 		// can be: comment, msgctxt, msgid, msgid_plural, msgstr, msgstr_plural
 		$context = '';
 		$msgstr_index = 0;
-		$is_final = create_function('$context', 'return $context == "msgstr" || $context == "msgstr_plural";');
 		while (true) {
 			$lineno++;
 			$line = PO::read_line($f);
 			if (!$line)  {
 				if (feof($f)) {
-					if ($is_final($context))
+					if (self::isMsgStr($context))
 						break;
 					elseif (!$context) // we haven't read a line and eof came
 						return null;
@@ -310,7 +318,7 @@ class PO extends Gettext_Translations {
 			$line = trim($line);
 			if (preg_match('/^#/', $line, $m)) {
 				// the comment is the start of a new entry
-				if ($is_final($context)) {
+				if (self::isMsgStr($context)) {
 					PO::read_line($f, 'put-back');
 					$lineno--;
 					break;
@@ -322,7 +330,7 @@ class PO extends Gettext_Translations {
 				// add comment
 				$this->add_comment_to_entry($entry, $line);
 			} elseif (preg_match('/^msgctxt\s+(".*")/', $line, $m)) {
-				if ($is_final($context)) {
+				if (self::isMsgStr($context)) {
 					PO::read_line($f, 'put-back');
 					$lineno--;
 					break;
@@ -333,7 +341,7 @@ class PO extends Gettext_Translations {
 				$context = 'msgctxt';
 				$entry->context .= PO::unpoify($m[1]);
 			} elseif (preg_match('/^msgid\s+(".*")/', $line, $m)) {
-				if ($is_final($context)) {
+				if (self::isMsgStr($context)) {
 					PO::read_line($f, 'put-back');
 					$lineno--;
 					break;

