- updated setup script
- improve behavior when opening nonexostend or ports with errors
diff --git a/pyparallel/parallel/parallelppdev.py b/pyparallel/parallel/parallelppdev.py
index 98e1e84..df9cf2d 100644
--- a/pyparallel/parallel/parallelppdev.py
+++ b/pyparallel/parallel/parallelppdev.py
@@ -183,15 +183,21 @@
             self.device = port
         else:
             self.device = "/dev/parport%d" % port
+        self._fd = None
         self._fd = os.open(self.device, os.O_RDWR)
-        #~ self.PPEXCL()
-        self.PPCLAIM()
-        self.setDataDir(1)
-        self.setData(0)
+        try:
+            self.PPEXCL()
+            self.PPCLAIM()
+            self.setDataDir(1)
+            self.setData(0)
+        except IOError:
+            os.close(self._fd)
+            self._fd = None
+            raise
 
     def __del__(self):
-        self.PPRELEASE()
         if self._fd is not None:
+            self.PPRELEASE()
             os.close(self._fd)
 
     def timevalToFloat(self, timeval):
diff --git a/pyparallel/setup.py b/pyparallel/setup.py
index d4c3c4b..937923f 100644
--- a/pyparallel/setup.py
+++ b/pyparallel/setup.py
@@ -1,13 +1,34 @@
 #!/usr/bin/env python
-from distutils.core import setup
+# setup.py
+try:
+    from setuptools import setup
+except ImportError:
+    print "standart distutils"
+    from distutils.core import setup
+else:
+    print "setuptools"
+import sys
+
+#windows installer:
+# python setup.py bdist_wininst
+
+# patch distutils if it can't cope with the "classifiers" or
+# "download_url" keywords
+if sys.version < '2.2.3':
+    from distutils.dist import DistributionMetadata
+    DistributionMetadata.classifiers = None
+    DistributionMetadata.download_url = None
 
 import os
 if os.name == 'nt':
+    print "# set dependedcies for windows version"
     data_files = {'parallel': ['simpleio.dll']}
 else:
+    print "# no dependedcies"
     data_files = {}
 
-setup (name = "pyparallel",
+setup(
+    name = "pyparallel",
     description="Python Parallel Port Extension",
     version="0.2",
     author="Chris Liechti",
@@ -16,5 +37,16 @@
     packages=['parallel'],
     license="Python",
     long_description="Python Parallel Port Extension for Win32, Linux, BSD",
-    package_data = {}
+    classifiers = [
+        'Development Status :: 4 - Beta',
+        'Intended Audience :: Developers',
+        'License :: OSI Approved :: Python Software Foundation License',
+        'Natural Language :: English',
+        'Operating System :: POSIX',
+        'Operating System :: Microsoft :: Windows',
+        'Programming Language :: Python',
+        'Topic :: Communications',
+        'Topic :: Software Development :: Libraries',
+    ],
+    package_data = data_files
 )