Index: uspace/app/tester/print/print2.c
===================================================================
--- uspace/app/tester/print/print2.c	(revision 5b46ec8b4cb1d1075e4c18e9f366fca913758c8c)
+++ uspace/app/tester/print/print2.c	(revision e330da6e8c9b0dc3c32eed16c06b64b13f0a6963)
@@ -53,4 +53,13 @@
 	TPRINTF("Real output:     [%#x] [%#5.3x] [%#-5.3x] [%#3.5x] [%#-3.5x]\n\n", 17, 18, 19, 20, 21);
 	
+	char ch[12];
+	ptrdiff_t d, neg_d;
+	
+	d = &ch[0] - &ch[12];
+	neg_d = (unsigned)(-d);
+	TPRINTF("Testing printf(\"%%td %%tu %%tx %%ti %%to\", d, neg_d, neg_d, d, neg_d):\n");
+	TPRINTF("Expected output: [-12] [12] [c] [-12] [14]\n");
+	TPRINTF("Real output:     [%td] [%tu] [%tx] [%ti] [%to]\n\n", d, neg_d, neg_d, d, neg_d);
+	
 	return NULL;
 }
Index: uspace/lib/c/generic/io/printf_core.c
===================================================================
--- uspace/lib/c/generic/io/printf_core.c	(revision 5b46ec8b4cb1d1075e4c18e9f366fca913758c8c)
+++ uspace/lib/c/generic/io/printf_core.c	(revision e330da6e8c9b0dc3c32eed16c06b64b13f0a6963)
@@ -1448,7 +1448,10 @@
 			
 			switch (uc) {
-			/** @todo Unimplemented qualifiers:
-			 *        t ptrdiff_t - ISO C 99
-			 */
+			case 't':
+				/* ptrdiff_t */
+				if (sizeof(ptrdiff_t) == sizeof(int32_t))
+					qualifier = PrintfQualifierInt;
+				else
+					qualifier = PrintfQualifierLongLong;
 			case 'h':
 				/* Char or short */
