diff --git a/configtools.go b/configtools.go
index b970fe03ceb672ce097326c8d2d04d9d9b2a4f49..4332a08e5f5963a478ce996a766ada67f87c9da8 100644
--- a/configtools.go
+++ b/configtools.go
@@ -124,13 +124,15 @@ func bindFlags(cmd *cobra.Command) {
 		configName := f.Name
 		if !f.Changed && viper.IsSet(configName) {
 			val := viper.Get(configName)
-			if reflect.TypeOf(val).String() == "string" {
-				cmd.Flags().Set(f.Name, fmt.Sprintf("%v", val))
-			} else { //Assume array of string
+			valType := reflect.TypeOf(val).String()
+			//support string arrays
+			if (valType == "[]interface {}") {
 				valArray := val.([]interface{})
 				for _, v := range valArray {
 					cmd.Flags().Set(f.Name, fmt.Sprintf("%v", v))
 				}
+			} else { //Assume scalar
+				cmd.Flags().Set(f.Name, fmt.Sprintf("%v", val))
 			}
 		}
 	})