diff --git a/README b/README
index c3ce15ffecad3c0cbe7718e002b880fec5a0d617..0a0a3accd0799e93ac5964cbe749c7831b4cd681 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-Sieve implementation for Dovecot (1.1)
+Sieve implementation for Dovecot (1.2)
 
 ################################################################################
                                  !! WARNING !!
diff --git a/TODO b/TODO
index 5f835262073ff15d333ef6f4f87da20cba7ea319..3b5e234e535087241b5d3902ef31d53c25b71b05 100644
--- a/TODO
+++ b/TODO
@@ -1,7 +1,6 @@
 Next (in order of descending priority/precedence):
 * Review sieve-address parsing implementation for past-end checks
 * Improve handling of old/corrupt binaries.
-* Move to 1.2 and start using and new const str. 
 * Resolve problems in variables extension: scope uses hash the wrong way and
   extension ids are emitted directly.
 
diff --git a/configure.in b/configure.in
index 7a1e69012763a38916c6fd30fc0be1426226fe43..d2e04a0496b54832784d0f2a425ed4b5c94bd676 100644
--- a/configure.in
+++ b/configure.in
@@ -1,4 +1,4 @@
-AC_INIT([dovecot-sieve], [0.0.0], [dovecot@dovecot.org], [dovecot-1.1-sieve])
+AC_INIT([dovecot-sieve], [0.0.0], [dovecot@dovecot.org], [dovecot-1.2-sieve])
 AC_CONFIG_SRCDIR([src])
 
 AC_CONFIG_HEADERS([dsieve-config.h])
diff --git a/src/lib-sieve/sieve-binary.c b/src/lib-sieve/sieve-binary.c
index 760c222d8635a8aceda99cb14d5f5f37f47f7527..5738a7a0f8afa75f9175ae900fe8ba288d942fa2 100644
--- a/src/lib-sieve/sieve-binary.c
+++ b/src/lib-sieve/sieve-binary.c
@@ -1622,15 +1622,10 @@ bool sieve_binary_read_integer
 	return TRUE;
 }
 
-/* FIXME: add this to lib/str. (now commented out) */
-static string_t *t_str_const(const void *cdata, size_t size)
+/* FIXME: add this to lib/str. */
+static string_t *t_str_new_const(const char *str, size_t len)
 {
-	string_t *result = t_str_new(size);
-	
-	str_append_n(result, cdata, size);
-	
-	return result;
-	//return buffer_create_const_data(pool_datastack_create(), cdata, size);
+	return str_new_const(pool_datastack_create(), str, len);
 }
 
 bool sieve_binary_read_string
@@ -1645,7 +1640,7 @@ bool sieve_binary_read_string
 		return FALSE;
  
  	if ( str != NULL )  
-		*str = t_str_const(&ADDR_CODE_AT(binary, address), strlen);
+		*str = t_str_new_const(&ADDR_CODE_AT(binary, address), strlen);
 	ADDR_JUMP(address, strlen);
 	
 	if ( ADDR_CODE_AT(binary, address) != 0 )