Fix handling of unpacked args (#437)
diff --git a/fmt/format.h b/fmt/format.h
index 8a0623f..6a58f33 100644
--- a/fmt/format.h
+++ b/fmt/format.h
@@ -1538,7 +1538,7 @@
 class format_arg_store {
  private:
   static const size_t NUM_ARGS = sizeof...(Args);
-  static const bool IS_PACKED = NUM_ARGS <= internal::MAX_PACKED_ARGS;
+  static const bool IS_PACKED = NUM_ARGS < internal::MAX_PACKED_ARGS;
 
   typedef typename Context::char_type char_type;
 
@@ -1552,7 +1552,7 @@
   static const uint64_t TYPES = internal::make_type<Args..., void>();
 
   format_arg_store(const Args &... args)
-    : data_{{internal::MakeValue<Context>(args)...}} {}
+    : data_{{internal::MakeArg<Context>(args)...}} {}
 
   const value_type *data() const { return data_.data(); }
 };
diff --git a/test/format-test.cc b/test/format-test.cc
index d3d449a..6829f62 100644
--- a/test/format-test.cc
+++ b/test/format-test.cc
@@ -1577,10 +1577,11 @@
 }
 #endif
 
-TEST(FormatTest, MaxArgs) {
-  EXPECT_EQ("0123456789abcde",
-            fmt::format("{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}",
-                        0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'b', 'c', 'd', 'e'));
+TEST(FormatTest, UnpackedArgs) {
+  EXPECT_EQ("0123456789abcdefg",
+            fmt::format("{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}",
+                        0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'b', 'c', 'd', 'e',
+                        'f', 'g'));
 }
 
 #if FMT_USE_USER_DEFINED_LITERALS