diff --git a/Makefile b/Makefile
index 419dd8ea93f0533f857440a88e218bd3e74a5630..de026a97bb4d3e53a64e34781bd8fa93bf051adb 100644
--- a/Makefile
+++ b/Makefile
@@ -4,7 +4,7 @@ MODULES		= common plugins/gtkgui
 PREFIX		= /usr
 DESTDIR		= /
 
-FIND		= find -regex '.*\.\(\(glade\)\|\(py\)\|\(sh\)\|\(xpm\)\|\(gif\)\|\(png\)\|\(mo\)\|\(wav\)\)'
+FIND		= find -regex '.*\.\(\(glade\)\|\(py\)\|\(xpm\)\|\(gif\)\|\(png\)\|\(mo\)\|\(wav\)\)'
 FILES		= `$(FIND)`
 DIRS		= `$(FIND) -exec dirname {} \; | sort -u`
 FIND_LIB	= find -regex '.*\.\(so\)'
@@ -37,7 +37,7 @@ dist:
 	-rm -rf gajim-$(VERSION)
 	mkdir gajim-$(VERSION)
 	cp -r plugins scripts common Core doc Messages sounds gajim-$(VERSION)/
-	cp setup_win32.py gajim.iss AUTHORS gajim.1 gajim.xpm gajim.ico COPYING Makefile Changelog README gajim.sh gajim-$(VERSION)
+	cp setup_win32.py gajim.iss AUTHORS gajim.1 gajim.xpm gajim.ico COPYING Makefile Changelog README gajim.py gajim-$(VERSION)
 	-find gajim-$(VERSION) -name '.svn' -exec rm -rf {} \; 2> /dev/null
 	find gajim-$(VERSION) -name '*.pyc' -exec rm {} \;
 	find gajim-$(VERSION) -name '*.pyo' -exec rm {} \;
diff --git a/README b/README
index c367d004d9c8b13c7e7e0df3d41c0ff385c967b4..962e134fb34612ea2918747b9bff9343a32a1612 100644
--- a/README
+++ b/README
@@ -22,7 +22,7 @@ RUN GAJIM
 gajim
 
 or if you didn't 'make install' you can also run from gajim folder with
-./gajim.sh
+./gajim.py
 
 TROUBLESHOOTING
 If you have python2.3 please manually edit plugins/gtkgui/Makefile and in
diff --git a/debian/rules b/debian/rules
index 36fbd719472c5fb7230802eeb38f7113b3862fc4..fae177200ad98f2bde9743e563b15fb3511c2fce 100755
--- a/debian/rules
+++ b/debian/rules
@@ -28,9 +28,9 @@ install-stamp: build-stamp
 	cd debian/tmp && install -d `cat ../dirs`
 	make install PREFIX=/usr DESTDIR=`pwd`/debian/tmp
 	cp gajim.xpm debian/tmp/usr/share/pixmaps
-	chmod -x debian/tmp/usr/share/gajim/gajim.sh
-	sed -ne '1d;w debian/tmp/gajim.sh.tmp' debian/tmp/usr/share/gajim/gajim.sh
-	mv debian/tmp/gajim.sh.tmp debian/tmp/usr/share/gajim/gajim.sh
+	chmod -x debian/tmp/usr/share/gajim/gajim.py
+	sed -ne '1d;w debian/tmp/gajim.py.tmp' debian/tmp/usr/share/gajim/gajim.py
+	mv debian/tmp/gajim.py.tmp debian/tmp/usr/share/gajim/gajim.py
 
 binary-indep: checkroot build
 	$(checkdir)
diff --git a/gajim.sh b/gajim.py
similarity index 100%
rename from gajim.sh
rename to gajim.py
diff --git a/plugins/gtkgui/dialogs.py b/plugins/gtkgui/dialogs.py
index 98a15745ecb45763ea87c99a224a405b52f580eb..826dfacf432c2507216a076738fe00753a00d363 100644
--- a/plugins/gtkgui/dialogs.py
+++ b/plugins/gtkgui/dialogs.py
@@ -675,6 +675,9 @@ class New_message_dialog:
 	def on_chat_button_clicked(self, widget):
 		"""When Chat button is clicked"""
 		jid = self.jid_entry.get_text()
+		if jid.find('@') == -1: # if no @ was given
+			Error_dialog(_('User ID is not valid'))
+			return
 		# use User class, new_chat expects it that way
 		# is it in the roster?
 		if self.plugin.roster.contacts[self.account].has_key(jid):
diff --git a/plugins/gtkgui/gtkgui.py b/plugins/gtkgui/gtkgui.py
index 59a5e6020ffe677ebf8be5441121ec35cba9d393..c9bcbff51ce797aec0f6c640889fd22122a7691a 100644
--- a/plugins/gtkgui/gtkgui.py
+++ b/plugins/gtkgui/gtkgui.py
@@ -19,6 +19,13 @@
 
 if __name__ == "__main__":
 	import getopt, pickle, sys, socket
+
+	try: 	# Import Psyco if available
+		import psyco
+		psyco.full()
+	except ImportError:
+		pass
+		
 	try:
 		opts, args = getopt.getopt(sys.argv[1:], "p:h", ["help"])
 	except getopt.GetoptError:
diff --git a/scripts/gajim b/scripts/gajim
index c0a4adba724395923d7382aa7b95282de29a048c..0d928e5cb64458b75290c1dac69bb9f8cbe5982b 100644
--- a/scripts/gajim
+++ b/scripts/gajim
@@ -24,4 +24,4 @@ fi
 
 cd PREFIX/share/gajim
 export PYTHONPATH="$PYTHONPATH:PREFIX/lib/gajim"
-gajim.sh
+gajim.py
diff --git a/setup_win32.py b/setup_win32.py
index cab5dbcd0fa87932664b6a4bb49d734ba3f2a460..bd154abe717783167202f6277040e1b17e82046e 100644
--- a/setup_win32.py
+++ b/setup_win32.py
@@ -1,8 +1,8 @@
 ##      setup_win32.py
 ##
 ## Gajim Team:
-##      - Yann Le Boulanger <asterix@lagaule.org>
-##      - Vincent Hanquez <tab@snarc.org>
+## - Yann Le Boulanger <asterix@lagaule.org>
+## - Vincent Hanquez <tab@snarc.org>
 ##	- Nikos Kouremenos <kourem@gmail.com>
 ##      Copyright (C) 2003-2005 Gajim Team
 ##
@@ -40,8 +40,8 @@ opts = {
 setup(
     name = "Gajim",
     description = "A jabber client",
-#    console=["gajim.sh"],
-    windows = [{"script": "gajim.sh",
+#    console=["gajim.py"],
+    windows = [{"script": "gajim.py",
                 "icon_resources": [(1, "gajim.ico")]}],
     options=opts,
     data_files=[("plugins/gtkgui", glob.glob("plugins/gtkgui/gtkgui.glade")),