Small fixes.

diff --git a/dlls/shell32/shellpath.c b/dlls/shell32/shellpath.c
index 0091faf..b75297f 100644
--- a/dlls/shell32/shellpath.c
+++ b/dlls/shell32/shellpath.c
@@ -736,11 +736,27 @@
 /*************************************************************************
 *	PathProcessCommand	[SHELL32.653]
 */
-HRESULT WINAPI PathProcessCommand (DWORD u, DWORD v, DWORD w, DWORD x)
-{	FIXME("0x%04lx 0x%04lx 0x%04lx 0x%04lx stub\n",u,v,w,x);
+HRESULT WINAPI PathProcessCommandA (LPSTR lpCommand, LPSTR v, DWORD w, DWORD x)
+{
+	FIXME("%p(%s) %p 0x%04lx 0x%04lx stub\n",
+	lpCommand, lpCommand, v, w,x );
 	return 0;
 }
 
+HRESULT WINAPI PathProcessCommandW (LPWSTR lpCommand, LPSTR v, DWORD w, DWORD x)
+{
+	FIXME("%p(%s) %p 0x%04lx 0x%04lx stub\n",
+	lpCommand, debugstr_w(lpCommand), v, w,x );
+	return 0;
+}
+
+HRESULT WINAPI PathProcessCommandAW (LPVOID lpCommand, LPSTR v, DWORD w, DWORD x)
+{
+	if (VERSION_OsIsUnicode())
+	  return PathProcessCommandW(lpCommand, v, w, x);
+	return PathProcessCommandA(lpCommand, v, w, x);
+}
+
 /*************************************************************************
  * SHGetSpecialFolderPath [SHELL32.175]
  * 
diff --git a/dlls/shell32/shlfolder.c b/dlls/shell32/shlfolder.c
index 6f44144..7de71a6 100644
--- a/dlls/shell32/shlfolder.c
+++ b/dlls/shell32/shlfolder.c
@@ -3,6 +3,8 @@
  *
  *	Copyright 1997	Marcus Meissner
  *	Copyright 1998	Juergen Schmied
+ *	
+ *	IShellFolder with IDropTarget, IPersistFolder
  *
  */
 
@@ -217,8 +219,8 @@
 */
 
 static struct ICOM_VTABLE(IShellFolder) sfvt;
-static struct ICOM_VTABLE(IPersistFolder) psfvt;
 
+static struct ICOM_VTABLE(IPersistFolder) psfvt;
 #define _IPersistFolder_Offset ((int)(&(((IGenericSFImpl*)0)->lpvtblPersistFolder))) 
 #define _ICOM_THIS_From_IPersistFolder(class, name) class* This = (class*)(((char*)name)-_IPersistFolder_Offset); 
 
@@ -235,8 +237,10 @@
 
 	sf=(IGenericSFImpl*)HeapAlloc(GetProcessHeap(),0,sizeof(IGenericSFImpl));
 	sf->ref=1;
+
 	sf->lpvtbl=&sfvt;
 	sf->lpvtblPersistFolder=&psfvt;
+	
 	sf->sMyPath=NULL;	/* path of the folder */
 	sf->pMyPidl=NULL;	/* my qualified pidl */
 
@@ -302,7 +306,8 @@
 	}   
 
 	if(*ppvObj)
-	{ IShellFolder_AddRef((IShellFolder*)*ppvObj);
+	{
+	  IUnknown_AddRef((IUnknown*)(*ppvObj));
 	  TRACE("-- Interface: (%p)->(%p)\n",ppvObj,*ppvObj);
 	  return S_OK;
 	}
@@ -822,7 +827,7 @@
 	
 	/* test if simple(relative) or complex(absolute) pidl */
 	pidlTemp = ILGetNext(pidl);
-	if (pidlTemp && pidlTemp->mkid.cb==0x00)
+	if (pidlTemp && !pidlTemp->mkid.cb )
 	{ bSimplePidl = TRUE;
 	  TRACE("-- simple pidl\n");
 	}
@@ -1077,3 +1082,4 @@
 	ISFPersistFolder_GetClassID,
 	ISFPersistFolder_Initialize
 };
+
diff --git a/dlls/shell32/shlmenu.c b/dlls/shell32/shlmenu.c
index d803c5e..861ec45 100644
--- a/dlls/shell32/shlmenu.c
+++ b/dlls/shell32/shlmenu.c
@@ -196,7 +196,9 @@
 	}
 
 	if ( GetMenuItemCount (hmenu) == 0 )
-	  FileMenu_AppendItemA (hmenu, "(empty)", uID, FM_BLANK_ICON, 0, FM_DEFAULT_HEIGHT);
+	{ FileMenu_AppendItemA (hmenu, "(empty)", uID, FM_BLANK_ICON, 0, FM_DEFAULT_HEIGHT);
+	  NumberOfItems++;
+	}
 
 	menudata->bInitialized = TRUE;
 	SetMenuInfo(hmenu, &MenuInfo);
@@ -889,3 +891,4 @@
 	}
 	return(uIDMax);
 }
+
diff --git a/dlls/shell32/shlview.c b/dlls/shell32/shlview.c
index 732671e..6fb91a1 100644
--- a/dlls/shell32/shlview.c
+++ b/dlls/shell32/shlview.c
@@ -1212,7 +1212,7 @@
 	}   
 
 	if(*ppvObj)
-	{ IShellView_AddRef( (IShellView*) *ppvObj);
+	{ IShellView_AddRef( (IShellView*)This );
 	  TRACE("-- Interface: (%p)->(%p)\n",ppvObj,*ppvObj);
 	  return S_OK;
 	}
@@ -1221,7 +1221,7 @@
 }
 
 /**************************************************************************
-*  IShellView::AddRef
+*  IShellView_AddRef
 */
 static ULONG WINAPI IShellView_fnAddRef(IShellView * iface)
 {
@@ -1564,7 +1564,7 @@
 }
 
 /************************************************************************
- * ISVOleCmdTarget_Exec (IOleCommandTarget)
+ * ISVOleCmdTarget_QueryStatus (IOleCommandTarget)
  */
 static HRESULT WINAPI ISVOleCmdTarget_QueryStatus(
 	IOleCommandTarget *iface,
@@ -1573,14 +1573,20 @@
 	OLECMD * prgCmds,
 	OLECMDTEXT* pCmdText)
 {
+	char    xguid[50];
+
 	_ICOM_THIS_From_IOleCommandTarget(IShellViewImpl, iface);
 
-	FIXME("(%p)->(%p 0x%08lx %p %p\n", This, pguidCmdGroup, cCmds, prgCmds, pCmdText);
+	WINE_StringFromCLSID((LPCLSID)pguidCmdGroup,xguid);
+
+	FIXME("(%p)->(%p(%s) 0x%08lx %p %p\n", This, pguidCmdGroup, xguid, cCmds, prgCmds, pCmdText);
 	return E_NOTIMPL;
 }
 
 /************************************************************************
  * ISVOleCmdTarget_Exec (IOleCommandTarget)
+ *
+ * nCmdID is the OLECMDID_* enumeration
  */
 static HRESULT WINAPI ISVOleCmdTarget_Exec(
 	IOleCommandTarget *iface,
@@ -1590,9 +1596,13 @@
 	VARIANT* pvaIn,
 	VARIANT* pvaOut)
 {
+	char    xguid[50];
+
 	_ICOM_THIS_From_IOleCommandTarget(IShellViewImpl, iface);
 
-	FIXME("(%p)->(%p 0x%08lx 0x%08lx %p %p)\n", This, pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut);
+	WINE_StringFromCLSID((LPCLSID)pguidCmdGroup,xguid);
+
+	FIXME("(%p)->(\n\tTarget GUID:%s Command:0x%08lx Opt:0x%08lx %p %p)\n", This, xguid, nCmdID, nCmdexecopt, pvaIn, pvaOut);
 	return E_NOTIMPL;
 }
 
diff --git a/dlls/shell32/shres.rc b/dlls/shell32/shres.rc
index 0c87eed..72162e9 100644
--- a/dlls/shell32/shres.rc
+++ b/dlls/shell32/shres.rc
@@ -13,6 +13,8 @@
  * and translated. The language 0,0 is a hack to get it
  * loaded properly for all languages by pretending that
  * they are neutral.
+ * The menus are not jet properly implemented.
+ * Don't localize it yet. (js)
  */
 
 LANGUAGE 0,0
@@ -39,6 +41,11 @@
 	  MENUITEM SEPARATOR
 	  POPUP "Arrange &Icons"
 	  BEGIN
+	    MENUITEM "By &Name",	0x30	/* column 0 */
+	    MENUITEM "By &Type",	0x32	/* column 2 */
+	    MENUITEM "By &Size",	0x31	/* ... */
+	    MENUITEM "By &Date",	0x33
+	    MENUITEM SEPARATOR
 	    MENUITEM "&Auto Arrange",	FCIDM_SHVIEW_AUTOARRANGE
 	  END
 	  MENUITEM "Lin&e up Icons",	FCIDM_SHVIEW_SNAPTOGRID