diff --git a/plugins/org.eclipse.jst.jee.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.jee.ui/META-INF/MANIFEST.MF
index f700abf..0e65945 100644
--- a/plugins/org.eclipse.jst.jee.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.jee.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name.0
 Bundle-SymbolicName: org.eclipse.jst.jee.ui;singleton:=true
-Bundle-Version: 1.0.700.qualifier
+Bundle-Version: 1.0.701.qualifier
 Bundle-Activator: org.eclipse.jst.jee.ui.plugin.JEEUIPlugin
 Require-Bundle: org.eclipse.ui;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
diff --git a/plugins/org.eclipse.jst.jee.ui/pom.xml b/plugins/org.eclipse.jst.jee.ui/pom.xml
index ec38dd4..cfcd321 100644
--- a/plugins/org.eclipse.jst.jee.ui/pom.xml
+++ b/plugins/org.eclipse.jst.jee.ui/pom.xml
@@ -22,6 +22,6 @@
 
   <groupId>org.eclipse.webtools.javaee</groupId>
   <artifactId>org.eclipse.jst.jee.ui</artifactId>
-  <version>1.0.700-SNAPSHOT</version>
+  <version>1.0.701-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/deployables/WebDeployableArtifactUtil.java b/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/deployables/WebDeployableArtifactUtil.java
index e2cc65a..b49d460 100644
--- a/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/deployables/WebDeployableArtifactUtil.java
+++ b/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/deployables/WebDeployableArtifactUtil.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2013 IBM Corporation and others.
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -99,7 +99,7 @@
 				}
 				String mapping = null;
 				if (servlet.getServletClass() != null) {
-					List<ServletMapping> mappings = getServletMappings(resource, servlet.getServletClass());
+					List<ServletMapping> mappings = getServletMappings(resource, servlet.getServletName());
 
 					if (mappings != null && !mappings.isEmpty()) {
 						ServletMapping map = mappings.get(0);
@@ -408,7 +408,7 @@
 		return null;
 	}
 
-	private static List<ServletMapping> getServletMappings(IResource resource, String typeName){ 
+	private static List<ServletMapping> getServletMappings(IResource resource, String servletName){ 
 		IModelProvider provider = ModelProviderManager.getModelProvider(resource.getProject());
 		IWebCommon webApp = (IWebCommon)provider.getModelObject();
 		
@@ -418,7 +418,7 @@
 		if (servlets != null && !servlets.isEmpty()) {
 			for (int i = 0; i < servlets.size(); i++) {
 				Servlet servlet = servlets.get(i);
-				if (servlet.getServletClass() != null && servlet.getServletClass().equals(typeName)) {
+				if (servlet.getServletName() != null && servlet.getServletName().equals(servletName)) {
 					List<ServletMapping> mappings = webApp.getServletMappings();
 					if (mappings != null && !mappings.isEmpty()) {
 						Iterator<ServletMapping> it = mappings.iterator();
