diff --git a/Migration/Helpers/LnkEditor.cs b/Migration/Helpers/LnkEditor.cs
new file mode 100644
index 00000000..ed9a7623
--- /dev/null
+++ b/Migration/Helpers/LnkEditor.cs
@@ -0,0 +1,42 @@
+using System;
+using Shell32;
+using System.IO;
+
+namespace TweetDick.Migration.Helpers{
+    sealed class LnkEditor{
+        private readonly ShellLinkObject obj;
+
+        public LnkEditor(string file){
+            try{
+                Shell shell = new Shell();
+                Folder folder = shell.NameSpace(Path.GetDirectoryName(file));
+                FolderItem item = folder.Items().Item(Path.GetFileName(file));
+
+                obj = item.GetLink as ShellLinkObject;
+            }catch(Exception){
+                obj = null;
+            }
+        }
+
+        public void SetComment(string newComment){
+            if (obj == null)return;
+            obj.Description = newComment;
+        }
+
+        public void SetPath(string newPath){
+            if (obj == null)return;
+            obj.Path = newPath;
+            obj.SetIconLocation(newPath,0);
+        }
+
+        public void SetWorkingDirectory(string newWorkingDirectory){
+            if (obj == null)return;
+            obj.WorkingDirectory = newWorkingDirectory;
+        }
+
+        public void Save(){
+            if (obj == null)return;
+            obj.Save();
+        }
+    }
+}
diff --git a/Migration/Helpers/ProgramProcessSearch.cs b/Migration/Helpers/ProgramProcessSearch.cs
new file mode 100644
index 00000000..d5768e92
--- /dev/null
+++ b/Migration/Helpers/ProgramProcessSearch.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Diagnostics;
+using System.Linq;
+
+namespace TweetDick.Migration.Helpers{
+    static class ProgramProcessSearch{
+        public static Process FindProcessWithWindowByName(string name){
+            try{
+                return Process.GetProcessesByName(name).FirstOrDefault(process => process.MainWindowHandle != IntPtr.Zero);
+            }catch(Exception){
+                return null;
+            }
+        }
+    }
+}
diff --git a/Migration/MigrationManager.cs b/Migration/MigrationManager.cs
index 18b0b12a..978eb705 100644
--- a/Migration/MigrationManager.cs
+++ b/Migration/MigrationManager.cs
@@ -1,6 +1,7 @@
 using System;
 using System.Diagnostics;
 using System.IO;
+using System.Threading;
 using System.Threading.Tasks;
 using System.Windows.Forms;
 using TweetDick.Core;
@@ -63,7 +64,7 @@ private static bool BeginMigration(MigrationDecision decision, Action<Exception>
                 CopyFile("Local Storage"+Path.DirectorySeparatorChar+"https_tweetdeck.twitter.com_0.localstorage");
                 CopyFile("Local Storage"+Path.DirectorySeparatorChar+"https_tweetdeck.twitter.com_0.localstorage-journal");
 
-                if (decision == MigrationDecision.Migrate){
+                if (decision == MigrationDecision.Migrate || decision == MigrationDecision.MigratePurge){
                     Directory.Delete(TweetDeckPath,true);
 
                     try{
@@ -74,6 +75,32 @@ private static bool BeginMigration(MigrationDecision decision, Action<Exception>
                 }
 
                 if (decision == MigrationDecision.MigratePurge){
+                    // kill process if running
+                    Process runningProcess = ProgramProcessSearch.FindProcessWithWindowByName("TweetDeck");
+
+                    if (runningProcess != null){
+                        runningProcess.CloseMainWindow();
+
+                        for(int wait = 0; wait < 100 && !runningProcess.HasExited; wait++){ // 10 seconds
+                            runningProcess.Refresh();
+                            Thread.Sleep(100);
+                        }
+                            
+                        runningProcess.Close();
+                    }
+
+                    // update the pinned taskbar lnk if exists
+                    string linkFile = Path.Combine(Environment.ExpandEnvironmentVariables(@"%APPDATA%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar"),"TweetDeck.lnk");
+
+                    if (File.Exists(linkFile)){
+                        LnkEditor lnk = new LnkEditor(linkFile);
+                        lnk.SetPath(Application.ExecutablePath);
+                        lnk.SetWorkingDirectory(Environment.CurrentDirectory);
+                        lnk.SetComment("TweetDick"); // TODO add a tagline
+                        lnk.Save();
+                    }
+
+                    // uninstall in the background
                     string guid = ProgramRegistrySearch.FindByDisplayName("TweetDeck");
 
                     if (guid != null){
@@ -83,6 +110,8 @@ private static bool BeginMigration(MigrationDecision decision, Action<Exception>
                             uninstaller.WaitForExit();
                         }
                     }
+
+                    // migration finished like a boss
                 }
             });
 
diff --git a/TweetDick.csproj b/TweetDick.csproj
index 6274a394..8976deff 100644
--- a/TweetDick.csproj
+++ b/TweetDick.csproj
@@ -103,6 +103,8 @@
     <Compile Include="Migration\FormMigrationQuestion.Designer.cs">
       <DependentUpon>FormMigrationQuestion.cs</DependentUpon>
     </Compile>
+    <Compile Include="Migration\Helpers\LnkEditor.cs" />
+    <Compile Include="Migration\Helpers\ProgramProcessSearch.cs" />
     <Compile Include="Migration\MigrationDecision.cs" />
     <Compile Include="Migration\MigrationManager.cs" />
     <Compile Include="Migration\Helpers\ProgramRegistrySearch.cs" />
@@ -133,6 +135,17 @@
       <Install>true</Install>
     </BootstrapperPackage>
   </ItemGroup>
+  <ItemGroup>
+    <COMReference Include="Shell32">
+      <Guid>{50A7E9B0-70EF-11D1-B75A-00A0C90564FE}</Guid>
+      <VersionMajor>1</VersionMajor>
+      <VersionMinor>0</VersionMinor>
+      <Lcid>0</Lcid>
+      <WrapperTool>tlbimp</WrapperTool>
+      <Isolated>False</Isolated>
+      <EmbedInteropTypes>True</EmbedInteropTypes>
+    </COMReference>
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <Import Project="packages\cef.redist.x86.3.2526.1362\build\cef.redist.x86.targets" Condition="Exists('packages\cef.redist.x86.3.2526.1362\build\cef.redist.x86.targets')" />
   <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">