Index: src/net/refractions/udig/catalog/internal/shp/ShpServiceImpl.java
===================================================================
--- src/net/refractions/udig/catalog/internal/shp/ShpServiceImpl.java	(revision 30267)
+++ src/net/refractions/udig/catalog/internal/shp/ShpServiceImpl.java	(working copy)
@@ -230,8 +230,7 @@
 						} catch (IOException e) {
 							msg = e;
 							try {
-								params
-										.remove(IndexedShapefileDataStoreFactory.CREATE_SPATIAL_INDEX.key);
+								params.remove(IndexedShapefileDataStoreFactory.CREATE_SPATIAL_INDEX.key);
 								ds = (ShapefileDataStore) dsf
 										.createDataStore(params);
                                 // hit it lightly to make sure it exists.
Index: src/net/refractions/udig/catalog/internal/shp/ShpServiceExtension.java
===================================================================
--- src/net/refractions/udig/catalog/internal/shp/ShpServiceExtension.java	(revision 30267)
+++ src/net/refractions/udig/catalog/internal/shp/ShpServiceExtension.java	(working copy)
@@ -64,15 +64,13 @@
                     return null;
                 }
             }
-            String file=url.getFile();
-            file=file.toLowerCase();
-            if( !(file.endsWith(".shp") || file.endsWith(".shx") ||file.endsWith(".qix")  //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-            		|| file.endsWith(".dbf"))) //$NON-NLS-1$
+
+            if( ! isSupportedExtension(url) ) //$NON-NLS-1$
             		return null;
-                if(id == null){
+            if(id == null){
                     return new ShpServiceImpl(url,params);
-                }
-                return new ShpServiceImpl(id,params);
+            }
+            return new ShpServiceImpl(id,params);
         }
         return null;
     }
@@ -110,7 +108,9 @@
         if (auth != null && !auth.equals("")) {
         	urlFile = "//"+auth+urlFile;
         }
-        if( !urlFile.endsWith(".shp") ){ //$NON-NLS-1$
+        // issues with case
+        if( !urlFile.matches(".*\\.[sS][hH][pP]\\Z") ) {
+        //if( !urlFile.endsWith(".shp") ){ //$NON-NLS-1$
             urlFile = urlFile.substring(0, urlFile.lastIndexOf('.') )+".shp"; //$NON-NLS-1$
         }
         try {
@@ -115,7 +115,7 @@
         }
         try {
             File file = new File(urlFile);
-            url2 = file.toURL();
+            url2 = file.toURI().toURL();
         } catch (MalformedURLException e) {
             return null;
         }
 

