diff --git a/src/client_cli/vmEdit.go b/src/client_cli/vmEdit.go
index 712199e616cb71790ff187b2773762d90cc93c15..7909bb0ade6cedefe5719c4abec14707dd685654 100644
--- a/src/client_cli/vmEdit.go
+++ b/src/client_cli/vmEdit.go
@@ -20,6 +20,9 @@ func (cmd *CmdVMEdit)Desc() string {
 func (cmd *CmdVMEdit)PrintUsage() {
 	printlnErr("Usage: "+cmd.name+" vmID [name=\"new name\"] [cpus=n] [ram=n] [nic=none/user]")
 	printlnErr("Parameters between [] are optional, but at least one must be defined.")
+	printlnErr("cpus must be between 1 and 16")
+	printlnErr("ram must be between 512 and 32768")
+	printlnErr("nic must be either \"none\" or \"user\"")
 }
 
 func getStringVal(s string, prefix string) string {
@@ -45,13 +48,14 @@ func (cmd *CmdVMEdit)Run(args []string) int {
 	}
 			
 	vmArgs := &VMArgs {}
-
+	argsValid := false
 	id := args[0]
 	
 	for _, arg := range args {
 		s := getStringVal(arg, "name=")
 		if s != "" {
 			vmArgs.Name = s
+			argsValid = true
 		}
 		s = getStringVal(arg, "cpus=")
 		if s != "" {
@@ -61,6 +65,7 @@ func (cmd *CmdVMEdit)Run(args []string) int {
 				return 1
 			}
 			vmArgs.Cpus = cpus
+			argsValid = true
 		}
 		s = getStringVal(arg, "ram=")
 		if s != "" {
@@ -70,13 +75,20 @@ func (cmd *CmdVMEdit)Run(args []string) int {
 				return 1
 			}
 			vmArgs.Ram = ram
+			argsValid = true
 		}
 		s = getStringVal(arg, "nic=")
 		if s != "" {
 			vmArgs.Nic = s
+			argsValid = true
 		}
 	}
 
+	if !argsValid {
+		cmd.PrintUsage()
+		return 1
+	}
+
 	resp, err := client.R().SetBody(vmArgs).Put(host+"/vms/"+id)
 	if err != nil {
 		printlnErr("Error: "+err.Error())