diff --git a/plugins/org.eclipse.jst.jee.ejb/ejb/org/eclipse/jst/jee/model/internal/EjbAnnotationFactory.java b/plugins/org.eclipse.jst.jee.ejb/ejb/org/eclipse/jst/jee/model/internal/EjbAnnotationFactory.java
index 1ad55e0..dfd0d8a 100644
--- a/plugins/org.eclipse.jst.jee.ejb/ejb/org/eclipse/jst/jee/model/internal/EjbAnnotationFactory.java
+++ b/plugins/org.eclipse.jst.jee.ejb/ejb/org/eclipse/jst/jee/model/internal/EjbAnnotationFactory.java
@@ -82,11 +82,13 @@
 	private static final String NAME = "name"; //$NON-NLS-1$
 	private static final String VOID_RETURN_TYPE = "V"; //$NON-NLS-1$
 	private static final String JAVAX_EJB_STATEFUL = "javax.ejb.Stateful"; //$NON-NLS-1$
+	private static final String JAVAX_EJB_SINGLETON = "javax.ejb.Singleton"; //$NON-NLS-1$
 	private static final String STATEFUL = "Stateful"; //$NON-NLS-1$
 	private static final String JAVAX_EJB_MESSAGE_DRIVEN = "javax.ejb.MessageDriven"; //$NON-NLS-1$
 	private static final String MESSAGE_DRIVEN = "MessageDriven"; //$NON-NLS-1$
 	private static final String JAVAX_EJB_STATELESS = "javax.ejb.Stateless"; //$NON-NLS-1$
 	private static final String STATELESS = "Stateless"; //$NON-NLS-1$
+	private static final String SINGLETON = "Singleton"; //$NON-NLS-1$
 	
 	private static final String CREATE_METHOD = "create"; //$NON-NLS-1$
 
@@ -122,6 +124,9 @@
 			} else if (STATEFUL.equals(annotationName) || JAVAX_EJB_STATEFUL.equals(annotationName)) {
 				processStatefulBean(result, annotation, type);
 				break;
+			} else if (SINGLETON.equals(annotationName) || JAVAX_EJB_SINGLETON.equals(annotationName)) {
+				processSingletonBean(result, annotation, type);
+				break;
 			}
 		}
 		return result;
@@ -136,6 +141,12 @@
 		SessionBean sessionBean = createSession(result, SessionType.STATELESS_LITERAL, annotation, type);
 		result.setMainObject(sessionBean);
 	}
+	
+	private void processSingletonBean(Result result, IAnnotation annotation, IType type) throws JavaModelException {
+		SessionBean sessionBean = createSession(result, SessionType.SINGLETON_LITERAL, annotation, type);
+		result.setMainObject(sessionBean);
+		
+	}
 
 	private void processStatefulBean(Result result, IAnnotation annotation, IType type) throws JavaModelException {
 		SessionBean sessionBean = createSession(result, SessionType.STATEFUL_LITERAL, annotation, type);
