diff --git a/plugins/org.eclipse.jst.j2ee.ejb/ejb/org/eclipse/jst/j2ee/ejb/internal/operations/LocalComponentInterfaceTemplate.java b/plugins/org.eclipse.jst.j2ee.ejb/ejb/org/eclipse/jst/j2ee/ejb/internal/operations/LocalComponentInterfaceTemplate.java
index 066e68e..aac73a3 100644
--- a/plugins/org.eclipse.jst.j2ee.ejb/ejb/org/eclipse/jst/j2ee/ejb/internal/operations/LocalComponentInterfaceTemplate.java
+++ b/plugins/org.eclipse.jst.j2ee.ejb/ejb/org/eclipse/jst/j2ee/ejb/internal/operations/LocalComponentInterfaceTemplate.java
@@ -23,10 +23,10 @@
     final StringBuffer stringBuffer = new StringBuffer();
      CreateSessionBeanTemplateModel model = (CreateSessionBeanTemplateModel) argument; 
     
-	if (model.getJavaPackageName() != null && model.getJavaPackageName().length() > 0) {
+	if (model.getLocalComponentPackage() != null && model.getLocalComponentPackage().length() > 0) {
 
     stringBuffer.append(TEXT_1);
-    stringBuffer.append( model.getJavaPackageName() );
+    stringBuffer.append(model.getLocalComponentPackage());
     stringBuffer.append(TEXT_2);
     
 	}
diff --git a/plugins/org.eclipse.jst.j2ee.ejb/ejb/org/eclipse/jst/j2ee/ejb/internal/operations/RemoteComponentInterfaceTemplate.java b/plugins/org.eclipse.jst.j2ee.ejb/ejb/org/eclipse/jst/j2ee/ejb/internal/operations/RemoteComponentInterfaceTemplate.java
index 34da65a..554ea82 100644
--- a/plugins/org.eclipse.jst.j2ee.ejb/ejb/org/eclipse/jst/j2ee/ejb/internal/operations/RemoteComponentInterfaceTemplate.java
+++ b/plugins/org.eclipse.jst.j2ee.ejb/ejb/org/eclipse/jst/j2ee/ejb/internal/operations/RemoteComponentInterfaceTemplate.java
@@ -23,10 +23,10 @@
     final StringBuffer stringBuffer = new StringBuffer();
      CreateSessionBeanTemplateModel model = (CreateSessionBeanTemplateModel) argument; 
     
-	if (model.getJavaPackageName() != null && model.getJavaPackageName().length() > 0) {
+	if (model.getRemoteComponentPackage() != null && model.getRemoteComponentPackage().length() > 0) {
 
     stringBuffer.append(TEXT_1);
-    stringBuffer.append( model.getJavaPackageName() );
+    stringBuffer.append(model.getRemoteComponentPackage());
     stringBuffer.append(TEXT_2);
     
 	}
diff --git a/plugins/org.eclipse.jst.j2ee.ejb/templates/localComponentInterface.javajet b/plugins/org.eclipse.jst.j2ee.ejb/templates/localComponentInterface.javajet
index aeb246b..debf313 100644
--- a/plugins/org.eclipse.jst.j2ee.ejb/templates/localComponentInterface.javajet
+++ b/plugins/org.eclipse.jst.j2ee.ejb/templates/localComponentInterface.javajet
@@ -2,7 +2,14 @@
 	class="LocalComponentInterfaceTemplate" 
 %>
 <% CreateSessionBeanTemplateModel model = (CreateSessionBeanTemplateModel) argument; %>
-<%@ include file="_package.template" %>
+<%
+	if (model.getLocalComponentPackage() != null && model.getLocalComponentPackage().length() > 0) {
+%>
+package <%=model.getLocalComponentPackage()%>;
+<%
+	}
+%>
+
 import javax.ejb.EJBLocalObject;
 
 public interface <%= model.getLocalComponentClassSimpleName() %> extends EJBLocalObject {
diff --git a/plugins/org.eclipse.jst.j2ee.ejb/templates/remoteComponentInterface.javajet b/plugins/org.eclipse.jst.j2ee.ejb/templates/remoteComponentInterface.javajet
index 6c256bb..3ded02d 100644
--- a/plugins/org.eclipse.jst.j2ee.ejb/templates/remoteComponentInterface.javajet
+++ b/plugins/org.eclipse.jst.j2ee.ejb/templates/remoteComponentInterface.javajet
@@ -2,7 +2,14 @@
 	class="RemoteComponentInterfaceTemplate" 
 %>
 <% CreateSessionBeanTemplateModel model = (CreateSessionBeanTemplateModel) argument; %>
-<%@ include file="_package.template" %>
+<%
+	if (model.getRemoteComponentPackage() != null && model.getRemoteComponentPackage().length() > 0) {
+%>
+package <%=model.getRemoteComponentPackage()%>;
+<%
+	}
+%>
+
 import javax.ejb.EJBObject;
 
 public interface <%= model.getRemoteComponentClassSimpleName() %> extends EJBObject {
