diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/HttpsUtility.java b/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/HttpsUtility.java
index a0054d7..6b9d3df 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/HttpsUtility.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/HttpsUtility.java
@@ -59,7 +59,7 @@
 	public static InputStream getHttpsInputStream(String thisProtocol,String thisHost, String thisPort, String thisPath, String locale)
 	{
 		try {
-			URL url = new URL(thisProtocol, thisHost, Integer.valueOf(thisPort) .intValue(),
+			URL url = new URL(thisProtocol, thisHost, Integer.parseInt(thisPort),
 					thisPath + PATH_TOC + '?' + PARAM_LANG + '=' + locale);
 			return getHttpsStream(url);
 		} catch (Exception e) {
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteContextProvider.java b/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteContextProvider.java
index fabd05f..ebde30f 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteContextProvider.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteContextProvider.java
@@ -65,7 +65,7 @@
 						HttpURLConnection connection;
 						if(protocols[i].equals(PROTOCOL))
 						{
-							url = new URL(PROTOCOL, host[i], Integer.valueOf(port[i]).intValue(), path[i]+ PATH_CONTEXT + '?' + PARAM_ID + '=' + id + '&' + PARAM_LANG + '=' + locale);
+							url = new URL(PROTOCOL, host[i], Integer.parseInt(port[i]), path[i]+ PATH_CONTEXT + '?' + PARAM_ID + '=' + id + '&' + PARAM_LANG + '=' + locale);
 							connection = (HttpURLConnection)ProxyUtil.getConnection(url);
 							if (connection.getResponseCode() == 200) {
 								in = connection.getInputStream();
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteSearchManager.java b/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteSearchManager.java
index b30deae..27bf22c 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteSearchManager.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteSearchManager.java
@@ -68,7 +68,7 @@
 
 							if(protocols[i].equals(PROTOCOL_HTTP))
 							{
-								url = new URL("http", host[i], Integer.valueOf(port[i]).intValue(), path[i] + PATH_SEARCH + '?' + PARAM_PHRASE + '=' + URLCoder.encode(searchQuery.getSearchWord()) + '&' + PARAM_LANG + '=' + searchQuery.getLocale()); //$NON-NLS-1$
+								url = new URL("http", host[i], Integer.parseInt(port[i]), path[i] + PATH_SEARCH + '?' + PARAM_PHRASE + '=' + URLCoder.encode(searchQuery.getSearchWord()) + '&' + PARAM_LANG + '=' + searchQuery.getLocale()); //$NON-NLS-1$
 								in = ProxyUtil.getStream(url);
 							}
 							else
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteTocProvider.java b/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteTocProvider.java
index 60e5287..51dcc96 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteTocProvider.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/base/remote/RemoteTocProvider.java
@@ -80,7 +80,7 @@
 
 						if(protocol[i].equalsIgnoreCase(PROTOCOL))
 						{
-							url = new URL(protocol[i], host[i], Integer.valueOf(port[i]) .intValue(),
+							url = new URL(protocol[i], host[i], Integer.parseInt(port[i]),
 									path[i] + PATH_TOC + '?' + PARAM_LANG + '=' + locale);
 
 							in = ProxyUtil.getStream(url);
