diff --git a/bundles/org.eclipse.osgi/console/src/org/eclipse/osgi/framework/internal/core/FrameworkConsole.java b/bundles/org.eclipse.osgi/console/src/org/eclipse/osgi/framework/internal/core/FrameworkConsole.java
index c0e38fb..0292cfc 100644
--- a/bundles/org.eclipse.osgi/console/src/org/eclipse/osgi/framework/internal/core/FrameworkConsole.java
+++ b/bundles/org.eclipse.osgi/console/src/org/eclipse/osgi/framework/internal/core/FrameworkConsole.java
@@ -251,24 +251,25 @@
 		BufferedReader br = (BufferedReader) in;
 		//cache the console prompt String
 		String consolePrompt = "\r\n" + ConsoleMsg.formatter.getString("CONSOLE_PROMPT"); //$NON-NLS-1$ //$NON-NLS-2$
+		boolean block = !("arm".equals(System.getProperty("osgi.arch"))); //$NON-NLS-1$ //$NON-NLS-2$
 		while (!disconnect) {
 			out.print(consolePrompt);
 			out.flush();
 
-			// avoid waiting on input stream - apparently generates contention with other native calls
-
 			String cmdline = null;
-			try {
-				synchronized (lock) {
-					while (!br.ready()) {
-						lock.wait(300);
+			if (block) {
+				// avoid waiting on input stream - apparently generates contention with other native calls
+				try {
+					synchronized (lock) {
+						while (!br.ready())
+							lock.wait(300);
 					}
+					cmdline = br.readLine();
+				} catch (InterruptedException e) {
+					// do nothing; probably got disconnected
 				}
+			} else
 				cmdline = br.readLine();
-			} catch (InterruptedException e) {
-				// do nothing; probably got disconnected
-			} finally {
-			}
 
 			if (cmdline == null) {
 				break;
@@ -316,6 +317,7 @@
 		try {
 			/** The buffered input reader on standard in. */
 			input = ((BufferedReader) in).readLine();
+			System.out.println("<" + input + ">");
 		} catch (IOException e) {
 			input = ""; //$NON-NLS-1$
 		}
