diff --git a/docs/admin-guide.rst b/docs/admin-guide.rst
index 78bb89224c03b3836e5c31907cec655f76cde144..8aee19ffbd2dd820fea498e58522210247017367 100644
--- a/docs/admin-guide.rst
+++ b/docs/admin-guide.rst
@@ -327,7 +327,7 @@ To inspect current default base quota limits, run::
 
 You can modify the default base quota limit for all future users with::
 
-   # snf-manage resource-modify <resource_name> --default-quota <value>
+   # snf-manage resource-modify <resource_name> --base-default <value>
 
 Set base quota for individual users
 ```````````````````````````````````
@@ -363,7 +363,7 @@ in ``20-snf-astakos-app-settings.conf`` set::
 You can change the maximum allowed number of pending project applications
 per user with::
 
-    # snf-manage resource-modify astakos.pending_app --default-quota <number>
+    # snf-manage resource-modify astakos.pending_app --base-default <number>
 
 You can also set a user-specific limit with::
 
diff --git a/docs/quick-install-admin-guide.rst b/docs/quick-install-admin-guide.rst
index 1f69577779d17b401b4559cfd94789a38b6afa48..0c8a393cc8935f7478f8472d53862a1d45bc063b 100644
--- a/docs/quick-install-admin-guide.rst
+++ b/docs/quick-install-admin-guide.rst
@@ -912,7 +912,7 @@ resource.
 
 .. code-block:: console
 
-    # snf-manage resource-modify --default-quota-interactive
+    # snf-manage resource-modify cyclades.vm --base-default 2
 
 Setting Resource Visibility
 ---------------------------
diff --git a/snf-astakos-app/astakos/im/management/commands/resource-modify.py b/snf-astakos-app/astakos/im/management/commands/resource-modify.py
index 8abe2f5ee4156ac98d4067d4a637f4f22c679f62..5d506d06b08ffd4021f39d960a82f7eba3c04091 100644
--- a/snf-astakos-app/astakos/im/management/commands/resource-modify.py
+++ b/snf-astakos-app/astakos/im/management/commands/resource-modify.py
@@ -1,4 +1,4 @@
-# Copyright 2013 GRNET S.A. All rights reserved.
+# Copyright 2013, 2014 GRNET S.A. All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or
 # without modification, are permitted provided that the following
@@ -33,12 +33,11 @@
 
 from optparse import make_option
 from django.core.management.base import BaseCommand, CommandError
-from django.utils import simplejson as json
 
 from snf_django.management import utils
 from astakos.im.models import Resource
-from astakos.im.register import update_resources
-from ._common import show_resource_value, style_options, check_style, units
+from astakos.im import register
+from ._common import style_options, check_style, units
 
 
 class Command(BaseCommand):
@@ -46,20 +45,9 @@ class Command(BaseCommand):
     help = "Modify a resource's default base quota and boolean flags."
 
     option_list = BaseCommand.option_list + (
-        make_option('--default-quota',
+        make_option('--base-default',
                     metavar='<limit>',
                     help="Specify default base quota"),
-        make_option('--default-quota-interactive',
-                    action='store_true',
-                    default=None,
-                    help=("Prompt user to change default base quota. "
-                          "If no resource is given, prompts for all "
-                          "resources.")),
-        make_option('--default-quota-from-file',
-                    metavar='<limits_file.json>',
-                    help=("Read default base quota from a file. "
-                          "File should contain a json dict mapping resource "
-                          "names to limits")),
         make_option('--unit-style',
                     default='mb',
                     help=("Specify display unit for resource values "
@@ -74,11 +62,12 @@ class Command(BaseCommand):
 
     def handle(self, *args, **options):
         resource_name = args[0] if len(args) > 0 else None
+        if resource_name is None:
+            raise CommandError("Please provide a resource name.")
+        resource = self.get_resource(resource_name)
 
         actions = {
-            'default_quota': self.change_limit,
-            'default_quota_interactive': self.change_interactive,
-            'default_quota_from_file': self.change_from_file,
+            'base_default': self.change_base_default,
             'api_visible': self.set_api_visible,
             'ui_visible': self.set_ui_visible,
         }
@@ -87,44 +76,29 @@ class Command(BaseCommand):
                 for (key, value) in options.items()
                 if key in actions and value is not None]
 
-        if len(opts) != 1:
-            raise CommandError("Please provide exactly one of the options: "
-                               "--default-quota, --default-quota-interactive, "
-                               "--default-quota-from-file, "
-                               "--api-visible, --ui-visible.")
-
         self.unit_style = options['unit_style']
         check_style(self.unit_style)
 
-        key, value = opts[0]
-        action = actions[key]
-        action(resource_name, value)
-
-    def set_api_visible(self, resource_name, allow):
-        if resource_name is None:
-            raise CommandError("Please provide a resource name.")
+        for key, value in opts:
+            action = actions[key]
+            action(resource, value)
 
+    def set_api_visible(self, resource, allow):
         try:
             allow = utils.parse_bool(allow)
         except ValueError:
             raise CommandError("Expecting a boolean value.")
-        resource = self.get_resource(resource_name)
         resource.api_visible = allow
         if not allow and resource.ui_visible:
             self.stderr.write("Also resetting 'ui_visible' for consistency.\n")
             resource.ui_visible = False
         resource.save()
 
-    def set_ui_visible(self, resource_name, allow):
-        if resource_name is None:
-            raise CommandError("Please provide a resource name.")
-
+    def set_ui_visible(self, resource, allow):
         try:
             allow = utils.parse_bool(allow)
         except ValueError:
             raise CommandError("Expecting a boolean value.")
-        resource = self.get_resource(resource_name)
-
         resource.ui_visible = allow
         if allow and not resource.api_visible:
             self.stderr.write("Also setting 'api_visible' for consistency.\n")
@@ -138,83 +112,14 @@ class Command(BaseCommand):
             raise CommandError("Resource %s does not exist."
                                % resource_name)
 
-    def change_limit(self, resource_name, limit):
-        if resource_name is None:
-            raise CommandError("Please provide a resource name.")
-
-        resource = self.get_resource(resource_name)
-        self.change_resource_limit(resource, limit)
-
-    def change_from_file(self, resource_name, filename):
-        with open(filename) as file_data:
-            try:
-                config = json.load(file_data)
-            except json.JSONDecodeError:
-                raise CommandError("Malformed JSON file.")
-            if not isinstance(config, dict):
-                raise CommandError("Malformed JSON file.")
-            self.change_with_conf(resource_name, config)
-
-    def change_with_conf(self, resource_name, config):
-        if resource_name is None:
-            resources = Resource.objects.all().select_for_update()
-        else:
-            resources = [self.get_resource(resource_name)]
-
-        updates = []
-        for resource in resources:
-            limit = config.get(resource.name)
-            if limit is not None:
-                limit = self.parse_limit(limit)
-                updates.append((resource, limit))
-        if updates:
-            update_resources(updates)
-
-    def change_interactive(self, resource_name, _placeholder):
-        if resource_name is None:
-            resources = Resource.objects.all().select_for_update()
-        else:
-            resources = [self.get_resource(resource_name)]
-
-        updates = []
-        for resource in resources:
-            self.stdout.write("Resource '%s' (%s)\n" %
-                              (resource.name, resource.desc))
-            value = show_resource_value(resource.uplimit, resource.name,
-                                        self.unit_style)
-            self.stdout.write("Current limit: %s\n" % value)
-            while True:
-                self.stdout.write("New limit (leave blank to keep current): ")
-                try:
-                    response = raw_input()
-                except EOFError:
-                    self.stderr.write("Aborted.\n")
-                    exit()
-                if response == "":
-                    break
-                else:
-                    try:
-                        value = units.parse(response)
-                    except units.ParseError:
-                        continue
-                    updates.append((resource, value))
-                    break
-        if updates:
-            self.stderr.write("Updating...\n")
-            update_resources(updates)
+    def change_base_default(self, resource, limit):
+        limit = self.parse_limit(limit)
+        register.update_base_default(resource, limit)
 
     def parse_limit(self, limit):
         try:
-            if isinstance(limit, (int, long)):
-                return limit
-            if isinstance(limit, basestring):
-                return units.parse(limit)
-            raise units.ParseError()
+            return units.parse(limit)
         except units.ParseError:
-            m = ("Limit should be an integer, optionally followed by a unit,"
-                 " or 'inf'.")
+            m = ("Quota limit should be an integer, "
+                 "optionally followed by a unit, or 'inf'.")
             raise CommandError(m)
-
-    def change_resource_limit(self, resource, limit):
-        limit = self.parse_limit(limit)
-        update_resources([(resource, limit)])
diff --git a/snf-astakos-app/astakos/im/register.py b/snf-astakos-app/astakos/im/register.py
index 548c7d990f18a1841e815d48e4238570e9b81fa4..a4ab9138bb4ca6afbf89bbfc089514f57d1698cd 100644
--- a/snf-astakos-app/astakos/im/register.py
+++ b/snf-astakos-app/astakos/im/register.py
@@ -114,19 +114,16 @@ def add_resource(resource_dict):
     return r, exists
 
 
-def update_resources(updates):
-    resources = []
-    for resource, uplimit in updates:
-        resources.append(resource)
-        old_uplimit = resource.uplimit
-        if uplimit == old_uplimit:
-            logger.info("Resource %s has limit %s; no need to update."
-                        % (resource.name, uplimit))
-        else:
-            resource.uplimit = uplimit
-            resource.save()
-            logger.info("Updated resource %s with limit %s."
-                        % (resource.name, uplimit))
+def update_base_default(resource, base_default):
+    old_base_default = resource.uplimit
+    if base_default == old_base_default:
+        logger.info("Resource %s has base default %s; no need to update."
+                    % (resource.name, base_default))
+    else:
+        resource.uplimit = base_default
+        resource.save()
+        logger.info("Updated resource %s with base default %s."
+                    % (resource.name, base_default))
 
 
 def resources_to_dict(resources):
diff --git a/snf-astakos-app/astakos/scripts/snf-component-register b/snf-astakos-app/astakos/scripts/snf-component-register
index 8c233b5be07366efc5c9b3caebf767348ce54c8a..4ea3474d3fadedcc06fe89b05a541efe2d238f61 100755
--- a/snf-astakos-app/astakos/scripts/snf-component-register
+++ b/snf-astakos-app/astakos/scripts/snf-component-register
@@ -109,7 +109,7 @@ fi
 if [ $changed -eq 1 ]; then
     echo 'Done with registering services and their resources.'
     echo 'Now run '
-    echo "  snf-manage resource-modify --limit-interactive"
+    echo "  snf-manage resource-modify <resource_name> --base-default <limit>"
     echo 'to specify the default base quota for each resource provided by' \
         'the services.'
 fi
diff --git a/snf-deploy/snfdeploy/components.py b/snf-deploy/snfdeploy/components.py
index 381394e5ac1a853c0757794b1d01316bc0837e3c..f96d742b168f7702b50c6b1f99c423906d4995a0 100644
--- a/snf-deploy/snfdeploy/components.py
+++ b/snf-deploy/snfdeploy/components.py
@@ -643,7 +643,7 @@ class Astakos(SynnefoComponent):
             ]
 
     def set_default_quota(self):
-        cmd = "snf-manage resource-modify --default-quota"
+        cmd = "snf-manage resource-modify --base-default"
         return [
             "%s 40G pithos.diskspace" % cmd,
             "%s 2 astakos.pending_app" % cmd,
diff --git a/snf-deploy/snfdeploy/fabfile.py b/snf-deploy/snfdeploy/fabfile.py
index 6ce3bbf1de95bebb8b274fee5a14b17310306cb0..5118b5033a17701d6fae801c502711c24d6421b3 100644
--- a/snf-deploy/snfdeploy/fabfile.py
+++ b/snf-deploy/snfdeploy/fabfile.py
@@ -1256,16 +1256,16 @@ def import_services():
 
     debug(env.host, " * Setting default quota...")
     cmd = """
-    snf-manage resource-modify --default-quota 40G pithos.diskspace
-    snf-manage resource-modify --default-quota 2 astakos.pending_app
-    snf-manage resource-modify --default-quota 4 cyclades.vm
-    snf-manage resource-modify --default-quota 40G cyclades.disk
-    snf-manage resource-modify --default-quota 16G cyclades.total_ram
-    snf-manage resource-modify --default-quota 8G cyclades.ram
-    snf-manage resource-modify --default-quota 32 cyclades.total_cpu
-    snf-manage resource-modify --default-quota 16 cyclades.cpu
-    snf-manage resource-modify --default-quota 4 cyclades.network.private
-    snf-manage resource-modify --default-quota 4 cyclades.floating_ip
+    snf-manage resource-modify --base-default 40G pithos.diskspace
+    snf-manage resource-modify --base-default 2 astakos.pending_app
+    snf-manage resource-modify --base-default 4 cyclades.vm
+    snf-manage resource-modify --base-default 40G cyclades.disk
+    snf-manage resource-modify --base-default 16G cyclades.total_ram
+    snf-manage resource-modify --base-default 8G cyclades.ram
+    snf-manage resource-modify --base-default 32 cyclades.total_cpu
+    snf-manage resource-modify --base-default 16 cyclades.cpu
+    snf-manage resource-modify --base-default 4 cyclades.network.private
+    snf-manage resource-modify --base-default 4 cyclades.floating_ip
     """
     try_run(cmd)