Index: wp-includes/category-template.php
===================================================================
--- wp-includes/category-template.php	(revision 21386)
+++ wp-includes/category-template.php	(working copy)
@@ -1054,11 +1054,14 @@
  *
  * @since 2.5.0
  *
+ * @see wp_get_object_terms() for reference on the $args param
+ *
  * @param int $id Post ID.
  * @param string $taxonomy Taxonomy name.
+ * @param array $args Accepts the same arguments as the $args param for wp_get_object_terms.
  * @return array|bool False on failure. Array of term objects on success.
  */
-function get_the_terms( $id, $taxonomy ) {
+function get_the_terms( $id, $taxonomy, $args = array() ) {
 	global $post;
 
  	$id = (int) $id;
@@ -1070,10 +1073,13 @@
 			$id = (int) $post->ID;
 	}
 
-	$terms = get_object_term_cache( $id, $taxonomy );
+	$cache_key = "{$taxonomy}_relationships_" . md5( serialize( $args ) );
+	var_dump( $cache_key );
+	$terms = wp_cache_get($id, $cache_key);
+
 	if ( false === $terms ) {
-		$terms = wp_get_object_terms( $id, $taxonomy );
-		wp_cache_add($id, $terms, $taxonomy . '_relationships');
+		$terms = wp_get_object_terms( $id, $taxonomy, $args );
+		wp_cache_add($id, $terms, $cache_key);
 	}
 
 	$terms = apply_filters( 'get_the_terms', $terms, $id, $taxonomy );
@@ -1089,15 +1095,18 @@
  *
  * @since 2.5.0
  *
+ * @see wp_get_object_terms() for reference on the $args param
+ *
  * @param int $id Post ID.
  * @param string $taxonomy Taxonomy name.
  * @param string $before Optional. Before list.
  * @param string $sep Optional. Separate items using this.
  * @param string $after Optional. After list.
+ * @param array $args Accepts the same arguments as the $args param for wp_get_object_terms.
  * @return string
  */
-function get_the_term_list( $id, $taxonomy, $before = '', $sep = '', $after = '' ) {
-	$terms = get_the_terms( $id, $taxonomy );
+function get_the_term_list( $id, $taxonomy, $before = '', $sep = '', $after = '', $args = array() ) {
+	$terms = get_the_terms( $id, $taxonomy, $args );
 
 	if ( is_wp_error( $terms ) )
 		return $terms;
@@ -1127,10 +1136,12 @@
  * @param string $before Optional. Before list.
  * @param string $sep Optional. Separate items using this.
  * @param string $after Optional. After list.
+ * @param string $order Either 'ASC' or 'DESC', defaults to 'ASC'.
+ * @param string $orderby Either 'name' (default), 'slug', 'count', 'term_order', 'term_group' (as per wp_get_object_terms).
  * @return null|bool False on WordPress error. Returns null when displaying.
  */
-function the_terms( $id, $taxonomy, $before = '', $sep = ', ', $after = '' ) {
-	$term_list = get_the_term_list( $id, $taxonomy, $before, $sep, $after );
+function the_terms( $id, $taxonomy, $before = '', $sep = ', ', $after = '', $order = null, $orderby = null  ) {
+	$term_list = get_the_term_list( $id, $taxonomy, $before, $sep, $after, $order, $orderby );
 
 	if ( is_wp_error( $term_list ) )
 		return false;
