diff --git a/Data/ASN1/Prim.hs b/Data/ASN1/Prim.hs
--- a/Data/ASN1/Prim.hs
+++ b/Data/ASN1/Prim.hs
@@ -128,7 +128,7 @@
 encodePrimitiveData (UTF8String b)      = putString $ encodeUtf8 b
 encodePrimitiveData (NumericString b)   = putString b
 encodePrimitiveData (PrintableString b) = putString $ encodeUtf8 b
-encodePrimitiveData (T61String b)       = putString b
+encodePrimitiveData (T61String b)       = putString $ encodeUtf8 b
 encodePrimitiveData (VideoTexString b)  = putString b
 encodePrimitiveData (IA5String b)       = putString $ encodeUtf8 b
 encodePrimitiveData (UTCTime t)         = putUTCTime t
@@ -275,7 +275,7 @@
 getUTF8String = either Left (Right . UTF8String . decodeUtf8) . getString (\_ -> Nothing)
 
 getT61String :: ByteString -> Either ASN1Err ASN1
-getT61String = either Left (Right . T61String) . getString (\_ -> Nothing)
+getT61String = either Left (Right . T61String . decodeASCII) . getString (\_ -> Nothing)
 
 getVideoTexString :: ByteString -> Either ASN1Err ASN1
 getVideoTexString = either Left (Right . VideoTexString) . getString (\_ -> Nothing)
diff --git a/Data/ASN1/Stream.hs b/Data/ASN1/Stream.hs
--- a/Data/ASN1/Stream.hs
+++ b/Data/ASN1/Stream.hs
@@ -29,7 +29,7 @@
 	| UTF8String Text
 	| NumericString L.ByteString
 	| PrintableString Text
-	| T61String L.ByteString
+	| T61String Text
 	| VideoTexString L.ByteString
 	| IA5String Text
 	| UTCTime (Int, Int, Int, Int, Int, Int, Bool)
diff --git a/Data/ASN1/Types.hs b/Data/ASN1/Types.hs
--- a/Data/ASN1/Types.hs
+++ b/Data/ASN1/Types.hs
@@ -22,7 +22,7 @@
 	| UTF8String Text
 	| NumericString L.ByteString
 	| PrintableString Text
-	| T61String L.ByteString
+	| T61String Text
 	| VideoTexString L.ByteString
 	| IA5String Text
 	| UTCTime (Int, Int, Int, Int, Int, Int, Bool)
diff --git a/Tests.hs b/Tests.hs
--- a/Tests.hs
+++ b/Tests.hs
@@ -132,7 +132,7 @@
 		, liftM UTF8String arbitrary
 		, liftM NumericString arbitrary
 		, liftM PrintableString arbitraryPrintString
-		, liftM T61String arbitrary
+		, liftM T61String arbitraryIA5String
 		, liftM VideoTexString arbitrary
 		, liftM IA5String arbitraryIA5String
 		, liftM UTCTime arbitraryTime
@@ -176,7 +176,7 @@
 		, liftM T.Set arbitraryListASN1
 		, liftM T.NumericString arbitrary
 		, liftM T.PrintableString arbitraryPrintString
-		, liftM T.T61String arbitrary
+		, liftM T.T61String arbitraryIA5String
 		, liftM T.VideoTexString arbitrary
 		, liftM T.IA5String arbitraryIA5String
 		, liftM T.UTCTime arbitraryTime
diff --git a/asn1-data.cabal b/asn1-data.cabal
--- a/asn1-data.cabal
+++ b/asn1-data.cabal
@@ -1,5 +1,5 @@
 Name:                asn1-data
-Version:             0.4.5
+Version:             0.4.6
 Description:
     ASN1 data reader and writer in raw form with supports for high level forms of ASN1 (BER, CER and DER).
     .
