diff --git a/org.eclipse.jdt.debug.ui/icons/full/obj16/reference_obj.gif b/org.eclipse.jdt.debug.ui/icons/full/obj16/reference_obj.gif
new file mode 100644
index 0000000..45d9a16
--- /dev/null
+++ b/org.eclipse.jdt.debug.ui/icons/full/obj16/reference_obj.gif
Binary files differ
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIModelPresentation.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIModelPresentation.java
index a7358d5..c4617cc 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIModelPresentation.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIModelPresentation.java
@@ -623,8 +623,11 @@
 		initImageRegistries();
 		
 		try {
-			if (item instanceof JDIReferenceListVariable || item instanceof JDIReferenceListEntryVariable){
-				return getReferenceVariableImage(item);
+			if (item instanceof JDIReferenceListVariable) {
+				return getReferencesImage(item);
+			}
+			if (item instanceof JDIReferenceListEntryVariable){
+				return getReferenceImage(item);
 			}
 			if (item instanceof IJavaVariable) {
 				return getVariableImage((IAdaptable) item);
@@ -864,11 +867,22 @@
 	 * @param element
 	 * @return image associated with reference variables
 	 */
-	protected Image getReferenceVariableImage(Object element){
+	protected Image getReferencesImage(Object element){
 		return JavaDebugImages.get(JavaDebugImages.IMG_ELCL_ALL_REFERENCES);
 	}
 	
 	/**
+	 * Returns the image associated with reference variables being used to display
+	 * references to a root object.
+	 * 
+	 * @param element
+	 * @return image associated with reference variables
+	 */
+	protected Image getReferenceImage(Object element){
+		return JavaDebugImages.get(JavaDebugImages.IMG_OBJS_REFERENCE);
+	}	
+	
+	/**
 	 * Returns the image associated with the given element or <code>null</code>
 	 * if none is defined.
 	 */
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugImages.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugImages.java
index 706839e..0102f8c 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugImages.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugImages.java
@@ -67,6 +67,8 @@
 	public static final String IMG_OBJS_CONTENDED_MONITOR = "IMG_OBJS_CONTENDED_MONITOR";  //$NON-NLS-1$
 	public static final String IMG_OBJS_OWNED_MONITOR = "IMG_OBJS_OWNED_MONITOR";  //$NON-NLS-1$
 	
+	public static final String IMG_OBJS_REFERENCE = "IMG_OBJS_REFERENCE";  //$NON-NLS-1$
+	
 	public static final String IMG_OVR_OWNED = "IMG_OVR_OWNED";			//$NON-NLS-1$
 	public static final String IMG_OVR_OWNS_MONITOR = "IMG_OVR_OWNS_MONITOR";		//$NON-NLS-1$
 	public static final String IMG_OVR_IN_CONTENTION = "IMG_OVR_IN_CONTENTION";			//$NON-NLS-1$
@@ -147,6 +149,7 @@
 		declareRegistryImage(IMG_OBJS_EXCEPTION_DISABLED, T_OBJ + "jexceptiond_obj.gif"); //$NON-NLS-1$
 		declareRegistryImage(IMG_OVR_BREAKPOINT_INSTALLED, T_OVR + "installed_ovr.gif"); //$NON-NLS-1$
 		declareRegistryImage(IMG_OVR_BREAKPOINT_INSTALLED_DISABLED, T_OVR + "installed_ovr_disabled.gif"); //$NON-NLS-1$
+		declareRegistryImage(IMG_OBJS_REFERENCE, T_OBJ + "reference_obj.gif"); //$NON-NLS-1$
 			
 		declareRegistryImage(IMG_OBJS_LOCAL_VARIABLE, T_OBJ + "localvariable_obj.gif"); //$NON-NLS-1$
 		
