diff --git a/docs/conf.py b/docs/conf.py
index d8bbb5f07..999dd3c24 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -47,7 +47,7 @@ copyright = u'Rackspace, based on work by Jacob Kaplan-Moss'
 # The short X.Y version.
 version = '2.5'
 # The full version, including alpha/beta/rc tags.
-release = '2.5.5'
+release = '2.5.6'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff --git a/novaclient/images.py b/novaclient/images.py
index 3d19bff9f..236da6d13 100644
--- a/novaclient/images.py
+++ b/novaclient/images.py
@@ -47,7 +47,7 @@ class ImageManager(base.ManagerWithFind):
         return self._list("/images%s" % detail, "images")
 
 
-    def create(self, name, server):
+    def create(self, server, image_type="snapshot", name=None, rotation=None):
         """
         Create a new image by snapshotting a running :class:`Server`
 
@@ -55,7 +55,17 @@ class ImageManager(base.ManagerWithFind):
         :param server: The :class:`Server` (or its ID) to make a snapshot of.
         :rtype: :class:`Image`
         """
-        data = {"image": {"serverId": base.getid(server), "name": name}}
+        if image_type not in ("daily", "weekly", "snapshot"):
+            raise Exception("Invalid image_type: must be daily, "
+                            "weekly or snapshot")
+            
+        if image_type == "snapshot" and not name:
+            raise Exception("name is required for snapshots")
+        elif image_type != "snapshot" and not rotation:
+            raise Exception("rotation is required for backups")
+
+        data = {"image": {"serverId": base.getid(server), "name": name,
+                          "image_type": image_type, "rotation": rotation}}
         return self._create("/images", data, "image")
 
     def delete(self, image):
diff --git a/novaclient/shell.py b/novaclient/shell.py
index 33a45b721..f34c3477d 100644
--- a/novaclient/shell.py
+++ b/novaclient/shell.py
@@ -474,11 +474,19 @@ class OpenStackShell(object):
         print_list(self.cs.images.list(), ['ID', 'Name', 'Status'])
 
     @arg('server', metavar='<server>', help='Name or ID of server.')
-    @arg('name', metavar='<name>', help='Name for the new image.')
+    @arg('image_type', metavar='<image_type>', default='snapshot', help='daily, weekly or snapshot (default)')
+    @arg('--rotation',
+         default=None,
+         metavar='<rotation>',
+         help="Number of backups to retain. (for image-type daily or weekly)")
+    @arg('--name',
+         default=None,
+         metavar='<name>',
+         help="Name of the new snapshot")
     def do_image_create(self, args):
         """Create a new image by taking a snapshot of a running server."""
         server = self._find_server(args.server)
-        image = self.cs.images.create(args.name, server)
+        image = self.cs.images.create(server, image_type=args.image_type, name=args.name, rotation=args.rotation)
         print_dict(image._info)
 
     @arg('image', metavar='<image>', help='Name or ID of image.')
diff --git a/setup.py b/setup.py
index 353900e6f..a51e28c18 100644
--- a/setup.py
+++ b/setup.py
@@ -11,7 +11,7 @@ if sys.version_info < (2,6):
 
 setup(
     name = "python-novaclient",
-    version = "2.5.5",
+    version = "2.5.6",
     description = "Client library for OpenStack Nova API",
     long_description = read('README.rst'),
     url = 'https://github.com/rackspace/python-novaclient',