--- /dev/null
+++ b/bash/winexec
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+allargs=("$@")
+
+fixpath=0
+for idx in "${!allargs[@]}"; do
+    arg="${allargs[$idx]}"
+
+    if [[ $fixpath -eq 0 ]]; then
+        # fix file paths only after the first executable is found in arg
+        if [[ "$arg" == *.exe ]]; then
+            fixpath=1
+        fi
+        if [[ "$arg" == *.EXE ]]; then
+            fixpath=1
+        fi
+        continue
+    elif [[ $fixpath -eq 1 ]]; then
+        # if arg starts with '/' and it's a path that exists on host
+        # precede the path with drive 'Z:'
+        if [[ "${arg:0:1}" == '/' && -e "$arg" ]]; then
+            allargs[$idx]="z:${arg//\//\\}"
+        fi
+    fi
+done
+
+exec env "${allargs[@]}"

--- /dev/null
+++ b/bash/remove_shortcut
@@ -0,0 +1,41 @@
+#!/usr/bin/env bash
+
+# Copyright (C) 2011 Pâris Quentin
+
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 
+
+# This script makes shortcut of programs
+
+[ "$PLAYONLINUX" = "" ] && exit 0
+source "$PLAYONLINUX/lib/sources" 
+
+
+TITLE="$(eval_gettext '$APPLICATION_TITLE shortcut remover')"
+
+if [ "$1" ]; then
+	PACKAGE="$1"
+else
+	POL_SetupWindow_games "$(eval_gettext "Please choose a software to package")" "$TITLE"
+	PACKAGE="$APP_ANSWER"
+fi
+
+POL_SetupWindow_Init
+POL_SetupWindow_wait_next_signal "$(eval_gettext "Removing shortcut...")" "$TITLE"
+POL_Shortcut_RemoveDesktopShortcut "$PACKAGE"
+POL_SetupWindow_message "$(eval_gettext "The shortcut has been removed from $HOME.local/share/applications/ and your desktop")" "$TITLE"
+POL_SetupWindow_Close
+
+exit 0

--- a/python/mainwindow.py
+++ b/python/mainwindow.py
@@ -784,7 +784,9 @@
             i+=1
             self.menuGaucheAddLink("pol_prgm_configure", _("Configure"), i,Variables.playonlinux_env+"/resources/images/menu/run.png",self.Configure)
             i+=1
-            self.menuGaucheAddLink("pol_prgm_shortcut", _("Create a shortcut"), i,Variables.playonlinux_env+"/resources/images/menu/shortcut.png",self.Package)
+            self.menuGaucheAddLink("pol_prgm_shortcut", _("Create desktop shortcut"), i,Variables.playonlinux_env+"/resources/images/menu/shortcut.png",self.Package)
+            i+=1
+            self.menuGaucheAddLink("pol_prgm_shortcut_rem", _("Remove desktop shortcut"), i,Variables.playonlinux_env+"/resources/images/menu/shortcut.png",self.RemShortcut)
             i+=1
             self.menuGaucheAddLink("pol_prgm_adddir", _("Open the directory"), i,Variables.playonlinux_env+"/resources/images/menu/folder-wine.png",self.GoToAppDir)
 
@@ -980,6 +982,10 @@
     def Package(self, event):
         game_exec = self.GetSelectedProgram()
         subprocess.Popen(["bash", Variables.playonlinux_env+"/bash/make_shortcut", game_exec])
+        
+    def RemShortcut(self, event):
+        game_exec = self.GetSelectedProgram()
+        subprocess.Popen(["bash", Variables.playonlinux_env+"/bash/remove_shortcut", game_exec])
 
     def UninstallGame(self, event):
         game_exec = self.GetSelectedProgram()

--- a/lib/scripts.lib
+++ b/lib/scripts.lib
@@ -384,7 +384,7 @@
 			# Do nothing on Mac OS
 			if [ -n "$Categories" -a "$POL_OS" = "Linux" ] || [ -n "$Categories" -a "$POL_OS" = "BSD" ]; then
 				LOCALAPPS="$HOME/.local/share/applications"
-				make_desktop_shortcut "$iconPath" "$ICON_FILENAME" "$LOCALAPPS" "$PLAYONLINUX/playonlinux --run \"$ICON_FILENAME\"" "$binary_name" "$Categories" "playonlinux-"
+				make_desktop_shortcut "$iconPath" "$ICON_FILENAME" "$LOCALAPPS" "$PLAYONLINUX/bash/winexec $PLAYONLINUX/playonlinux --run \"$ICON_FILENAME\"" "$binary_name" "$Categories" "playonlinux-"
 			fi
 		fi
 
@@ -394,7 +394,7 @@
 			if [ "$POL_OS" = "Mac" ]; then
 				POL_SetupWindow_AutoApp "$ICON_FILENAME"
 			else
-				make_desktop_shortcut "$iconPath" "$ICON_FILENAME" "$DESKTOP" "$PLAYONLINUX/playonlinux --run \"$ICON_FILENAME\"" "$binary_name" "$Categories"
+				make_desktop_shortcut "$iconPath" "$ICON_FILENAME" "$DESKTOP" "$PLAYONLINUX/bash/winexec $PLAYONLINUX/playonlinux --run \"$ICON_FILENAME\"" "$binary_name" "$Categories"
 			fi
 		fi
 	fi
@@ -1039,13 +1039,33 @@
 		# http://stackoverflow.com/questions/8939580/bash-split-a-string-exactly-like-readline-would-split-it
 		eval set -- $(grep '^POL_Wine ' "$POL_USER_ROOT/shortcuts/$PACKAGE"|tail -n 1)
 		local binary="$2"
-		make_desktop_shortcut "$iconPath" "$PACKAGE" "$DESKTOP" "$PLAYONLINUX/playonlinux --run \"$PACKAGE\"" "$binary" ""
+		LOCALAPPS="$HOME/.local/share/applications"
+		make_desktop_shortcut "$iconPath" "$PACKAGE" "$LOCALAPPS" "$DESKTOP" "$PLAYONLINUX/bash/winexec $PLAYONLINUX/playonlinux --run \"$PACKAGE\"" "$binary" ""
+		ln -s "$PLACE/$PACKAGE.desktop" "$DESKTOP"
 		;;
 
 	    *)
 		POL_Debug_Warning "POL_Shortcut_MakeDesktopShortcut: not supported OS: $POL_OS"
 	esac
 }
+
+POL_Shortcut_RemoveDesktopShortcut()
+{
+        PACKAGE="$1"
+	if [ "$POL_OS" = "Mac" ]; then
+		if [ -f "$HOME/Desktop/$PACKAGE.app" ]; then
+			rm "$HOME/Desktop/$PACKAGE.app"
+		fi
+	fi
+	if [ "$POL_OS" = "Linux" ] || [ "$POL_OS" == "FreeBSD" ]; then
+		LOCALAPPS="$HOME/.local/share/applications"
+		if [ -f "$LOCALAPPS/$PACKAGE.desktop" ];then
+			rm "$DESKTOP/$PACKAGE.desktop"
+			rm "$LOCALAPPS/$PACKAGE.desktop"
+		fi
+	fi
+}
+
 POL_System_is32bit()
 {
 	# Check if the file (1) is a 32bit executable

--- a/lib/playonlinux.lib
+++ b/lib/playonlinux.lib
@@ -670,12 +670,12 @@
 	(echo "[Desktop Entry]"
 	echo "Encoding=UTF-8"
 	echo "Name=$ICON_NAME"
-	echo "Comment=PlayOnLinux"
 	echo "Type=Application"
-	echo "Exec=$EXECUTABLE %F"
+	echo "Exec=$EXECUTABLE"
 	echo "Icon=$ICON"
-	echo "Name[fr_FR]=$ICON_NAME"
 	echo "StartupWMClass=$WMCLASS"
+	echo "StartupNotify=true"
+	echo "Comment="
 	echo "Categories=$CATEGORIES") > "${SHORT_NAME}.desktop"
 	chmod +x "${SHORT_NAME}.desktop"
 }

--- a/bash/make_shortcut
+++ b/bash/make_shortcut
@@ -34,7 +34,7 @@
 POL_SetupWindow_Init
 POL_SetupWindow_wait_next_signal "$(eval_gettext "Creating shortcut...")" "$TITLE"
 POL_Shortcut_MakeDesktopShortcut "$PACKAGE"
-POL_SetupWindow_message "$(eval_gettext "The shortcut has been placed on your desktop")" "$TITLE"
+POL_SetupWindow_message "$(eval_gettext "The shortcut has been placed on $HOME.local/share/applications/ and linked to your desktop")" "$TITLE"
 POL_SetupWindow_Close
