[284508] Server will not change to republish status after web module changed
diff --git a/features/org.eclipse.wst.server_core.feature.patch/buildnotes_org.eclipse.wst.server_core.feature.patch.html b/features/org.eclipse.wst.server_core.feature.patch/buildnotes_org.eclipse.wst.server_core.feature.patch.html
index 8ab45d1..2a5cdfe 100644
--- a/features/org.eclipse.wst.server_core.feature.patch/buildnotes_org.eclipse.wst.server_core.feature.patch.html
+++ b/features/org.eclipse.wst.server_core.feature.patch/buildnotes_org.eclipse.wst.server_core.feature.patch.html
@@ -4,12 +4,12 @@
 <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta name="Build" content="Build">
-   <title>WTP 3.0.5 Patches</title>
+   <title>WTP 3.0.5.1 Patches</title>
 </head>
 
 <body>
 
-<h1>WTP 3.0.5 Patches</h1>
+<h1>WTP 3.0.5.1 Patches</h1>
 
 <h2>Feature Patched: org.eclipse.wst.server_core.feature</h2>
 <h3>Plugin(s) replaced:</h3>
@@ -17,6 +17,7 @@
 <p>Bug <a href='https://bugs.eclipse.org/279110'>279110</a>. Server status stuck on 'Republish'</p>
 <ul><li>org.eclipse.wst.internet.monitor.core</li></ul>
 <p>Bug <a href='https://bugs.eclipse.org/279101'>279101</a>. TCP/IP HTTP parser is case sensitive, when the specs say it shouldn't be</p>
+<p>Bug <a href='https://bugs.eclipse.org/284508'>284508</a>. Server will not change to republish status after web module changed</p>
 
 
 </body></html>
\ No newline at end of file
diff --git a/features/org.eclipse.wst.server_core.feature.patch/feature.properties b/features/org.eclipse.wst.server_core.feature.patch/feature.properties
index 1c22244..79b8639 100644
--- a/features/org.eclipse.wst.server_core.feature.patch/feature.properties
+++ b/features/org.eclipse.wst.server_core.feature.patch/feature.properties
@@ -29,6 +29,7 @@
 \n\
 Bug https://bugs.eclipse.org/279101 TCP/IP HTTP parser is case sensitive, when the specs say it shouldn't be\n\
 Bug https://bugs.eclipse.org/279110 Server status stuck on 'Republish'\n\
+Bug https://bugs.eclipse.org/284508 Server will not change to republish status after web module changed\n\
 \n\
 
 # "copyright" property - text of the "Feature Update Copyright"
diff --git a/plugins/org.eclipse.wst.server.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.server.core/META-INF/MANIFEST.MF
index 951a15d..31b3191 100644
--- a/plugins/org.eclipse.wst.server.core/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.server.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.server.core; singleton:=true
-Bundle-Version: 1.1.5.qualifier
+Bundle-Version: 1.1.6.qualifier
 Bundle-Activator: org.eclipse.wst.server.core.internal.ServerPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java
index 519c51b..3bc10c2 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java
@@ -798,20 +798,26 @@
 			return false;
 		
 		// shallow search: check for root modules first
-		boolean rv = modules.contains(requestedModule);
+		boolean deployed = modules.contains(requestedModule);
 		
-		// deep search: look into all the child modules
-		rv = !visitModule(modules.toArray(new IModule[0]), new IModuleVisitor(){
-				public boolean visit(IModule[] modules2) {
-					for (int i =0;i<=modules2.length-1;i++){
-						if (modules2[i].equals(requestedModule))
-							return false;
-					}
-					return !modules2.equals(requestedModule);
-			}}, null);
+		if(!deployed){
+			// deep search: look into all the child modules
+			Iterator<IModule> itr = modules.iterator();
+			while(itr.hasNext() && !deployed){
+				IModule[] m = new IModule[] {itr.next()};
+				deployed = !visitModule(m, new IModuleVisitor(){
+					public boolean visit(IModule[] modules2) {
+						for (int i =0;i<=modules2.length-1;i++){
+							if (modules2[i].equals(requestedModule))
+								return false;
+						}
+						return true;
+				}}, null);
+			}
+		}
 		
-		Trace.trace(Trace.FINEST, "< isModuleDeployed() rv="+rv);
-		return rv;
+		Trace.trace(Trace.FINEST, "< isModuleDeployed() deployed="+deployed);
+		return deployed;
 	}
 
 	protected void stopAutoPublish() {