When testing various display resolutions or after completing a remote desktop session, the desktop icons may go out of order. Another case is that when you accidentally use the CTRL+ Scroll button (mouse) on your Windows Vista desktop, the Desktop icon size changes. But reverting back to the original icon size does not restore the custom icon positions on your desktop. In these cases, you need to revert back the custom icon positions manually.

The Layout.dll shell extension from Microsoft Windows NT Resource Kit tools, can be used to Save and Restore Desktop icon layout. Good news is that the extension works well under Windows 2000, Windows XP and even in Windows Vista.

Installing the Layout.dll shell extension

  • To add the shell extension, download layout.zip and save it to a folder.
  • Unzip the archive and extract the files to your Desktop.
  • Move the file LAYOUT.DLL to the Windows\System32 folder.
  • Right-click LAYOUT.REG and choose Merge. Click Yes when asked for confirmation.

Note: Store the file layout.zip in a safe location if you need to uninstall the shell extension at a later time. You may use the file Uninstall.reg (included in layout.zip) to remove the entries from right-click menu.

Saving and Restoring desktop icon layout

After installing the shell extension, you’ll see two context-menu options namely Save Desktop Icon Layout and Restore Desktop Icon Layout when you right-click on an empty area on the Desktop. (Tip for advanced users: You can implement the shell extension in My Computer or Folder context menu as well.)

When you click Save Desktop Icon Layout, the Desktop icon positions are saved to a binary registry value, and you see the following message box:

Fig 1: Saving the desktop icon layout

Fig 2: Restoring the desktop icon layout

Uninstalling the Layout.dll shell extension

To uninstall the Layout.dll shell extension, right-click the file Uninstall.reg (available in layout.zip) and choose Merge. Then manually delete the file LAYOUT.DLL from your Windows\System32 folder.

Editor’s note: I noticed a small glitch in this extension. When two files of the same name are present on the Desktop (one in the per-user Desktop and another file with the same name, from the All Users Desktop folder), the shell extension overlaps the two icons that have the same name, and leaves a blank space before the icon. Therefore, rename one of those two files if you can, when using the Layout.dll shell extension. As Windows Vista shows two desktop.ini files on the Desktop, you’ll need to hide them or delete one of those desktop.ini files in order for the Layout.dll shell extension to work perfectly.

Email SubscriptionPrefer an E-mail subscription?

Enter your email address:

Delivered by FeedBurner


  1. Céline .S. Sauvé
    said this on Saturday, October 18th 2014 11:56 pm

    Thank you for this, though it only fixes the issue for my icons when not connected to me second monitor, or when connected to it. Not both.
    (So I can save the icons for one, but if I try to “restore” it once I connect/disconnect the second screen, they need to be manually sorted again.


  2. gnave
    said this on Thursday, August 14th 2014 2:37 am

    Only works with 32 bit windows

  3. Frank
    said this on Tuesday, April 29th 2014 2:54 pm

    For Windows x64 editions try to use ‘DesktopOK (64-bit)’ http://download.cnet.com/DesktopOK-64-bit/3000-2072_4-75152737.html

  4. LsSki
    said this on Tuesday, April 1st 2014 4:20 pm

    Kool fix, thx!

  5. Jacob
    said this on Monday, December 30th 2013 12:10 am

    Similar (actually identical) result as John reported: On my Win-7/64-bit machine, this simply does not do a blessed thing. Adds nothing to the right-click context menu. And BTW, the right-click context menu displayed in the example only slightly resembles my right-click menu.

    I would not try Jimmy’s “at your own risk” link because that’s clearly marked for Vista.

  6. Jimmy
    said this on Monday, October 14th 2013 5:50 am

    Will no work on 64 bit systems.
    Try this one below at your own risk.


  7. john
    said this on Tuesday, July 30th 2013 7:21 pm

    This isn’t working on my windows 7 64bit machine (ultimate) And suggestions?

  8. M
    said this on Tuesday, July 9th 2013 12:00 pm

    Anybody have an idea how to use this file without implementing it into the registry? (ie call the functions directly in the DLL as needed)

Leave a Reply