diff --git a/_modules/glancev2/image.py b/_modules/glancev2/image.py
index b8eedbe..660d71d 100644
--- a/_modules/glancev2/image.py
+++ b/_modules/glancev2/image.py
@@ -11,27 +11,27 @@
 
 @send('get')
 def image_list(**kwargs):
-    url = '/v2/images?{}'.format(urlencode(kwargs))
+    url = '/images?{}'.format(urlencode(kwargs))
     return url, {}
 
 
 @send('post')
 def image_create(**kwargs):
-    url = '/v2/images'
+    url = '/images'
     return url, {'json': kwargs}
 
 
 @get_by_name_or_uuid(image_list, RESOURCE_LIST_KEY)
 @send('get')
 def image_get_details(image_id, **kwargs):
-    url = '/v2/images/{}'.format(image_id)
+    url = '/images/{}'.format(image_id)
     return url, {}
 
 
 @get_by_name_or_uuid(image_list, RESOURCE_LIST_KEY)
 @send('patch')
 def image_update(image_id, properties, **kwargs):
-    url = '/v2/images/{}'.format(image_id)
+    url = '/images/{}'.format(image_id)
     headers = {
         'Content-Type': 'application/openstack-images-v2.1-json-patch',
     }
@@ -41,21 +41,21 @@
 @get_by_name_or_uuid(image_list, RESOURCE_LIST_KEY)
 @send('delete')
 def image_delete(image_id, **kwargs):
-    url = '/v2/images/{}'.format(image_id)
+    url = '/images/{}'.format(image_id)
     return url, {}
 
 
 @get_by_name_or_uuid(image_list, RESOURCE_LIST_KEY)
 @send('post')
 def image_deactivate(image_id, **kwargs):
-    url = '/v2/images/{}/actions/deactivate'.format(image_id)
+    url = '/images/{}/actions/deactivate'.format(image_id)
     return url, {}
 
 
 @get_by_name_or_uuid(image_list, RESOURCE_LIST_KEY)
 @send('post')
 def image_reactivate(image_id, **kwargs):
-    url = '/v2/images/{}/actions/reactivate'.format(image_id)
+    url = '/images/{}/actions/reactivate'.format(image_id)
     return url, {}
 
 
@@ -65,7 +65,7 @@
         self.hasher = hashlib.new('md5')
         self.chunksize = chunksize
 
-        resp = adapter.get('/v2/images/{}/file'.format(image_id),
+        resp = adapter.get('/images/{}/file'.format(image_id),
                            stream=True)
         if resp.status_code != 200:
             raise Exception('Invalid response code: %s' % resp.status_code)
@@ -95,7 +95,7 @@
 @get_by_name_or_uuid(image_list, RESOURCE_LIST_KEY)
 @send('put')
 def image_data_upload(image_id, file_name, **kwargs):
-    url = '/v2/images/{}/file'.format(image_id)
+    url = '/images/{}/file'.format(image_id)
     headers = {'Content-Type': 'application/octet-stream '}
     with open(file_name, 'rb') as f:
         data = f.readlines()
