Index: framework/base/src/org/ofbiz/base/util/RMIExtendedSocketFactory.java
===================================================================
--- framework/base/src/org/ofbiz/base/util/RMIExtendedSocketFactory.java	(revision 0)
+++ framework/base/src/org/ofbiz/base/util/RMIExtendedSocketFactory.java	(revision 0)
@@ -0,0 +1,73 @@
+package org.ofbiz.base.util;
+
+import java.io.IOException;
+import java.net.InetAddress;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.net.UnknownHostException;
+import java.rmi.server.RMISocketFactory;
+
+/**
+ * A <code>RMISocketFactory</code> implementation that creates <code>ServerSocket</code>s on a specified interface.  
+ */
+public class RMIExtendedSocketFactory extends RMISocketFactory {
+	
+	private InetAddress hostInetAddress;
+	
+	/**
+	 * Default constructor. Bind the server sockets on all interfaces.
+	 */
+	public RMIExtendedSocketFactory() {
+		// leave hostInetAddress null
+	}
+	
+	public RMIExtendedSocketFactory( InetAddress inetAddress ) {
+		this.hostInetAddress = inetAddress;
+	}
+
+	/**
+	 * 
+	 * @param host The IP address of the interface to bind the server sockets to.
+	 * @throws UnknownHostException If an invalid IP address is provided. 
+	 */
+	public RMIExtendedSocketFactory( String hostIpAddress ) throws UnknownHostException {
+		
+		// check if host is at least "0.0.0.0"
+		if ( hostIpAddress != null && hostIpAddress.length() >= 7 ) {
+			String[] octets = hostIpAddress.split( "\\." );
+			
+			if ( octets == null || octets.length != 4 ) {
+				throw new UnknownHostException( "Invalid IP address: " + hostIpAddress );
+			}
+			
+			byte[] ipAddr = new byte[4];
+			for ( int i = 0; i < octets.length; i++ ) {
+				try {
+					ipAddr[i] = ( byte ) Integer.parseInt( octets[i] );
+				} catch ( NumberFormatException nfEx ) {
+					throw new UnknownHostException( "Invalid IP address: " + hostIpAddress );
+				}
+			}
+			
+			hostInetAddress = InetAddress.getByAddress( ipAddr );
+			
+		}
+		
+		
+	}
+	@Override
+	public ServerSocket createServerSocket(int port) throws IOException {
+		if ( hostInetAddress !=  null ) {
+			return new ServerSocket( port, 0, hostInetAddress );
+		} else {
+			return new ServerSocket( port );
+		}
+	}
+
+	@Override
+	public Socket createSocket(String host, int port) throws IOException {
+		
+		return new Socket( host, port );
+	}
+
+}
Index: framework/base/config/ofbiz-containers.xml
===================================================================
--- framework/base/config/ofbiz-containers.xml	(revision 778426)
+++ framework/base/config/ofbiz-containers.xml	(working copy)
@@ -37,6 +37,7 @@
 
     <!-- load the naming (JNDI) server -->
     <container name="naming-container" class="org.ofbiz.base.container.NamingServiceContainer">
+        <property name="host" value="0.0.0.0"/>
         <property name="port" value="1099"/>
     </container>
 
Index: framework/base/src/org/ofbiz/base/container/NamingServiceContainer.java
===================================================================
--- framework/base/src/org/ofbiz/base/container/NamingServiceContainer.java	(revision 776224)
+++ framework/base/src/org/ofbiz/base/container/NamingServiceContainer.java	(working copy)
@@ -18,12 +18,15 @@
  *******************************************************************************/
 package org.ofbiz.base.container;
 
+import java.net.UnknownHostException;
 import java.rmi.registry.Registry;
 import java.rmi.registry.LocateRegistry;
 import java.rmi.RemoteException;
 import java.rmi.NoSuchObjectException;
 import java.rmi.server.UnicastRemoteObject;
 
+import org.ofbiz.base.util.RMIExtendedSocketFactory;
+
 /**
  * NamingServiceContainer
  *
@@ -37,6 +40,9 @@
     protected boolean isRunning = false;
     protected Registry registry = null;
     protected int namingPort = 1099;
+    protected String namingHost = null;
+    
+    protected RMIExtendedSocketFactory rmiSocketFactory;
 
     public void init(String[] args, String configFile) throws ContainerException {
         this.configFileLocation = configFile;
@@ -52,12 +58,25 @@
                 throw new ContainerException("Invalid port defined in container [naming-container] configuration; not a valid int");
             }
         }
+        
+     // get the telnet-host
+        ContainerConfig.Container.Property host = cfg.getProperty("host");
+        if (host != null && host.value != null) {
+            this.namingHost =  host.value ;
+        }
+        
+        try {
+        	rmiSocketFactory = new RMIExtendedSocketFactory( namingHost );
+        } catch ( UnknownHostException uhEx ) {
+        	throw new ContainerException("Invalid host defined in container [naming-container] configuration; not a valid IP address", uhEx);
+        }
 
     }
 
     public boolean start() throws ContainerException {
         try {
-            registry = LocateRegistry.createRegistry(namingPort);
+            registry = LocateRegistry.createRegistry(namingPort, rmiSocketFactory, rmiSocketFactory);
+        	
         } catch (RemoteException e) {
             throw new ContainerException("Unable to locate naming service", e);
         }
