diff --git a/compiler/cpp/src/generate/t_st_generator.cc b/compiler/cpp/src/generate/t_st_generator.cc
index 312e2ba..cf93bdc 100644
--- a/compiler/cpp/src/generate/t_st_generator.cc
+++ b/compiler/cpp/src/generate/t_st_generator.cc
@@ -169,7 +169,7 @@
 }
 
 string t_st_generator::prefix(string class_name) {
-  string prefix = program_->get_smalltalk_prefix();
+  string prefix = program_->get_namespace("smalltalk.prefix");
   string name = capitalize(class_name);
   name = prefix.empty() ? name : (prefix + name);
   return name;
@@ -206,7 +206,14 @@
 }
 
 string t_st_generator::generated_category() {
-  string cat = program_->get_smalltalk_category();
+  string cat = program_->get_namespace("smalltalk.category");
+  // For compatibility with the Thrift grammar, the category must
+  // be punctuated by dots.  Replaces them with dashes here.
+  for (string::iterator iter = cat.begin(); iter != cat.end(); ++iter) {
+    if (*iter == '.') {
+      *iter = '-';
+    }
+  }
   return cat.size() ? cat : "Generated-" + class_name();
 }
 
diff --git a/compiler/cpp/src/parse/t_program.h b/compiler/cpp/src/parse/t_program.h
index 72c3cdd..5d331a5 100644
--- a/compiler/cpp/src/parse/t_program.h
+++ b/compiler/cpp/src/parse/t_program.h
@@ -224,22 +224,6 @@
     return cocoa_prefix_;
   }
 
-  void set_smalltalk_category(std::string smalltalk_category) {
-    smalltalk_category_ = smalltalk_category;
-  }
-
-  const std::string& get_smalltalk_category() const {
-    return smalltalk_category_;
-  }
-
-  void set_smalltalk_prefix(std::string smalltalk_prefix) {
-    smalltalk_prefix_ = smalltalk_prefix;
-  }
-
-  const std::string& get_smalltalk_prefix() const {
-    return smalltalk_prefix_;
-  }
-
  private:
 
   // File path
@@ -292,14 +276,9 @@
 
   // Perl namespace
   std::string perl_package_;
-
   // Cocoa/Objective-C naming prefix
   std::string cocoa_prefix_;
 
-  // Smalltalk category
-  std::string smalltalk_category_;
-  // Smalltalk prefix
-  std::string smalltalk_prefix_;
 
   // C# namespace
   std::string csharp_namespace_;
diff --git a/compiler/cpp/src/thrifty.yy b/compiler/cpp/src/thrifty.yy
index db4a4a8..36b9316 100644
--- a/compiler/cpp/src/thrifty.yy
+++ b/compiler/cpp/src/thrifty.yy
@@ -298,18 +298,22 @@
         g_program->set_ruby_namespace($2);
       }
     }
+/* TODO(dreiss): Get rid of this once everyone is using the new hotness. */
 | tok_smalltalk_category tok_st_identifier
     {
+      pwarning(1, "'smalltalk_category' is deprecated. Use 'namespace smalltalk.category' instead");
       pdebug("Header -> tok_smalltalk_category tok_st_identifier");
       if (g_parse_mode == PROGRAM) {
-        g_program->set_smalltalk_category($2);
+        g_program->set_namespace("smalltalk.category", $2);
       }
     }
+/* TODO(dreiss): Get rid of this once everyone is using the new hotness. */
 | tok_smalltalk_prefix tok_identifier
     {
+      pwarning(1, "'smalltalk_prefix' is deprecated. Use 'namespace smalltalk.prefix' instead");
       pdebug("Header -> tok_smalltalk_prefix tok_identifier");
       if (g_parse_mode == PROGRAM) {
-        g_program->set_smalltalk_prefix($2);
+        g_program->set_namespace("smalltalk.prefix", $2);
       }
     }
 /* TODO(dreiss): Get rid of this once everyone is using the new hotness. */
diff --git a/thrift.el b/thrift.el
index 3383aee..a8c6adb 100644
--- a/thrift.el
+++ b/thrift.el
@@ -10,7 +10,7 @@
 (defconst thrift-font-lock-keywords
   (list
    '("#.*$" . font-lock-comment-face)  ;; perl style comments
-   '("\\<\\(include\\|struct\\|exception\\|typedef\\|cocoa_prefix\\|csharp_namespace\\|php_namespace\\|ruby_namespace\\|py_module\\|perl_package\\|smalltalk_category\\|smalltalk_prefix\\|const\\|enum\\|service\\|extends\\|void\\|async\\|throws\\|optional\\|required\\)\\>" . font-lock-keyword-face)  ;; keywords
+   '("\\<\\(include\\|struct\\|exception\\|typedef\\|cocoa_prefix\\|csharp_namespace\\|php_namespace\\|ruby_namespace\\|py_module\\|perl_package\\|const\\|enum\\|service\\|extends\\|void\\|async\\|throws\\|optional\\|required\\)\\>" . font-lock-keyword-face)  ;; keywords
    '("\\<\\(bool\\|byte\\|i16\\|i32\\|i64\\|double\\|string\\|binary\\|map\\|list\\|set\\)\\>" . font-lock-type-face)  ;; built-in types
    '("\\<\\([0-9]+\\)\\>" . font-lock-variable-name-face)   ;; ordinals
    '("\\<\\(\\w+\\)\\s-*(" (1 font-lock-function-name-face))  ;; functions
diff --git a/thrift.vim b/thrift.vim
index 4cadaf7..115e936 100644
--- a/thrift.vim
+++ b/thrift.vim
@@ -31,7 +31,7 @@
 
 " Keywords
 syn keyword thriftKeyword namespace cocoa_prefix
-syn keyword thriftKeyword csharp_namespace smalltalk_category smalltalk_prefix
+syn keyword thriftKeyword csharp_namespace
 syn keyword thriftKeyword php_namespace ruby_namespace py_module perl_package
 syn keyword thriftKeyword xsd_all xsd_optional xsd_nillable xsd_namespace xsd_attrs
 syn keyword thriftKeyword include cpp_include cpp_type const optional required
diff --git a/tutorial/tutorial.thrift b/tutorial/tutorial.thrift
index 3a1b7d2..8a72f60 100755
--- a/tutorial/tutorial.thrift
+++ b/tutorial/tutorial.thrift
@@ -48,7 +48,7 @@
 namespace java tutorial
 php_namespace tutorial
 perl_package tutorial
-smalltalk_category Thrift-Tutorial
+namespace smalltalk.category Thrift.Tutorial
 
 /**
  * Thrift lets you do typedefs to get pretty names for your types. Standard
