Index: scummvm/queen/graphics.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/graphics.cpp,v
retrieving revision 1.93
diff -u -r1.93 graphics.cpp
--- scummvm/queen/graphics.cpp	27 Jan 2004 16:56:11 -0000	1.93
+++ scummvm/queen/graphics.cpp	13 Feb 2004 20:41:49 -0000
@@ -432,24 +432,34 @@
 
 	char lines[8][MAX_STRING_SIZE];
 	int lineCount = 0;
-	int wordCount = 0;
 	int lineLength = 0;
 	int i;
 
-	for (i = 0; i < length; i++) {
-		if (textCopy[i] == ' ')
-			wordCount++;
+	// Hebrew strings are written from right to left and should be cut
+	// to lines in reverse
+	if (_vm->resource()->getLanguage() == HEBREW) {
+		for (i = length - 1; i >= 0; i--) {
+			lineLength++;
 
-		lineLength++;
+			if ((lineLength > 20 && textCopy[i] == ' ') || i == 0) {
+				memcpy(lines[lineCount], textCopy + i, lineLength);
+				lines[lineCount][lineLength] = '\0';
+				lineCount++;
+				lineLength = 0;
+			}
+		}
+	} else {
+		for (i = 0; i < length; i++) {
+			lineLength++;
 
-		if ((lineLength > 20 && textCopy[i] == ' ') || i == (length-1)) {
-			memcpy(lines[lineCount], textCopy + i + 1 - lineLength, lineLength);
-			lines[lineCount][lineLength] = '\0';
-			lineCount++;
-			lineLength = 0;
+			if ((lineLength > 20 && textCopy[i] == ' ') || i == (length-1)) {
+				memcpy(lines[lineCount], textCopy + i + 1 - lineLength, lineLength);
+				lines[lineCount][lineLength] = '\0';
+				lineCount++;
+				lineLength = 0;
+			}
 		}
 	}
-
 
 	// Plan: write each line to Screen 2, put black outline around lines and
 	// pick them up as a BOB.
Index: scummvm/queen/command.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/command.cpp,v
retrieving revision 1.67
diff -u -r1.67 command.cpp
--- scummvm/queen/command.cpp	23 Jan 2004 10:27:30 -0000	1.67
+++ scummvm/queen/command.cpp	13 Feb 2004 20:41:54 -0000
@@ -45,15 +45,27 @@
 }
 
 void CmdText::displayTemp(uint8 color, bool locked, Verb v, const char *name) {
-	char temp[MAX_COMMAND_LEN];
-	if (locked) {
-		sprintf(temp, "%s%s", _vm->logic()->joeResponse(39), _vm->logic()->verbName(v));
+	char temp[MAX_COMMAND_LEN] = "";
+	if (_vm->resource()->getLanguage() == HEBREW) {
+		if (name != NULL)
+			sprintf(temp, "%s ", name);
+
+		if (locked) {
+			strcat(temp, _vm->logic()->verbName(v));
+			strcat(temp, " ");
+			strcat(temp, _vm->logic()->joeResponse(39));
+		} else
+			strcat(temp, _vm->logic()->verbName(v));
 	} else {
-		strcpy(temp, _vm->logic()->verbName(v));
-	}
-	if (name != NULL) {
-		strcat(temp, " ");
-		strcat(temp, name);
+		if (locked)
+			sprintf(temp, "%s %s", _vm->logic()->joeResponse(39), _vm->logic()->verbName(v));
+		else
+			strcpy(temp, _vm->logic()->verbName(v));
+
+		if (name != NULL) {
+			strcat(temp, " ");
+			strcat(temp, name);
+		}
 	}
 	_vm->display()->textCurrentColor(color);
 	_vm->display()->setTextCentered(COMMAND_Y_POS, temp, false);
@@ -61,7 +73,10 @@
 
 void CmdText::displayTemp(uint8 color, const char *name) {
 	char temp[MAX_COMMAND_LEN];
-	sprintf(temp, "%s %s", _command, name);
+	if (_vm->resource()->getLanguage() == HEBREW)
+		sprintf(temp, "%s %s", name, _command);
+	else
+		sprintf(temp, "%s %s", _command, name);
 	_vm->display()->textCurrentColor(color);
 	_vm->display()->setTextCentered(COMMAND_Y_POS, temp, false);
 }
@@ -71,13 +86,31 @@
 }
 
 void CmdText::addLinkWord(Verb v) {
-	strcat(_command, " ");
-	strcat(_command, _vm->logic()->verbName(v));
+	if (_vm->resource()->getLanguage() == HEBREW) {
+		char temp[MAX_COMMAND_LEN];
+		
+		strcpy(temp, _command);
+		strcpy(_command, _vm->logic()->verbName(v));
+		strcat(_command, " ");
+		strcat(_command, temp);
+	} else {
+		strcat(_command, " ");
+		strcat(_command, _vm->logic()->verbName(v));
+	}
 }
 
 void CmdText::addObject(const char *objName) {
-	strcat(_command, " ");
-	strcat(_command, objName);
+	if (_vm->resource()->getLanguage() == HEBREW) {
+		char temp[MAX_COMMAND_LEN];
+		
+		strcpy(temp, _command);
+		strcpy(_command, objName);
+		strcat(_command, " ");
+		strcat(_command, temp);
+	} else {
+		strcat(_command, " ");
+		strcat(_command, objName);
+	}
 }
 
 bool CmdText::isEmpty() const {
