diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
 # j
 
+## 0.2.0.0
+
+  * Fix bug in integer arrays passed to J
+  * `JIntArr` now takes an array of `CLLong`
+
 ## 0.1.2.0
 
   * Add `jload` to load profile
diff --git a/j.cabal b/j.cabal
--- a/j.cabal
+++ b/j.cabal
@@ -1,6 +1,6 @@
 cabal-version:   1.18
 name:            j
-version:         0.1.2.0
+version:         0.2.0.0
 license:         BSD3
 license-file:    LICENSE
 copyright:       Copyright: (c) 2020 Vanessa McHale
diff --git a/src/Language/J.hs b/src/Language/J.hs
--- a/src/Language/J.hs
+++ b/src/Language/J.hs
@@ -270,7 +270,7 @@
             let mult = case ty' of
                     JBool    -> sizeOf (undefined :: CChar)
                     JChar    -> sizeOf (undefined :: CChar)
-                    JInteger -> sizeOf (undefined :: CInt)
+                    JInteger -> sizeOf (undefined :: CLLong)
                     JDouble  -> sizeOf (undefined :: CDouble)
             let resBytes = mult * intRank
             res <- mallocForeignPtrBytes resBytes
@@ -283,7 +283,7 @@
 data JAtom = JAtom !JType ![CLLong] !(ForeignPtr CChar)
 
 -- | J data backed by repa array
-data JData sh = JIntArr !(R.Array RF.F sh CInt)
+data JData sh = JIntArr !(R.Array RF.F sh CLLong)
               | JDoubleArr !(R.Array RF.F sh CDouble)
               | JBoolArr !(R.Array RF.F sh CChar)
               | JString !BS.ByteString
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -6,7 +6,7 @@
 import           Control.Applicative ((<$>))
 import qualified Data.Array.Repa     as R
 import qualified Data.ByteString     as BS
-import           Foreign.C.Types     (CDouble, CInt)
+import           Foreign.C.Types     (CDouble, CLLong)
 import           Language.J
 import           Test.Tasty
 import           Test.Tasty.HUnit
@@ -34,6 +34,7 @@
             , testCase "Writes strings to J values" (stringRoundtrip jenv)
             -- , testCase "Uses J for something Haskell would have a hard time with" (fill jenv)
             , testCase "Loads a library" (loadNoFail jenv)
+            , testCase "Sends an integer array" (printRes jenv)
             ]
 
 loadNoFail :: JEnv -> Assertion
@@ -42,10 +43,10 @@
     jLoad jenv (linuxProfile "9.01")
 #else
 #ifdef darwin_HOST_OS
-    jLoad jenv (macProfile "8.07")
+    jLoad jenv (macProfile [8,0,7])
 #else
 #ifdef mingw32_HOST_OS
-    jLoad jenv (macProfile "9.01")
+    jLoad jenv (windowsProfile [9,0,1])
 #endif
 #endif
 #endif
@@ -54,11 +55,18 @@
     assertBool "Doesn't fail" $
         not ("error: " `BS.isInfixOf` res)
 
+printRes :: JEnv -> Assertion
+printRes jenv = do
+    setJData jenv "plot_data" $ JIntArr $ R.copyS $ R.map (fromIntegral :: Int -> CLLong) $ R.fromListUnboxed (R.ix1 3) [1,10,2]
+    bsDispatch jenv "plot_data"
+    res <- bsOut jenv
+    res @?= "1 10 2\n"
+
 fill :: JEnv -> Assertion
 fill jenv = do
-    bsDispatch jenv "random_res =: ? 70 70 $ 1e10"
+    bsDispatch jenv "random_res =: ? 50 50 $ 1e10"
     res <- getJData jenv "random_res"
-    extrExtent res @?= [70, 70]
+    extrExtent res @?= [50, 50]
     where extrExtent :: JData R.DIM2 -> [Int]
           extrExtent (JIntArr res) = R.listOfShape $ R.extent res
 
@@ -81,7 +89,7 @@
 jSetA :: JEnv -> Assertion
 jSetA jenv = do
     let hsArr = R.fromListUnboxed (R.ix1 3) [1,3,6]
-    setJData jenv "b" (JIntArr $ R.copyS $ R.map (fromIntegral :: Int -> CInt) hsArr)
+    setJData jenv "b" (JIntArr $ R.copyS $ R.map (fromIntegral :: Int -> CLLong) hsArr)
     res <- getJData jenv "b"
     intList res @?= [1,3,6]
 
@@ -107,7 +115,7 @@
 doubleScalar :: JData R.Z -> [CDouble]
 doubleScalar (JDoubleArr arr) = R.toList arr
 
-intList :: JData R.DIM1 -> [CInt]
+intList :: JData R.DIM1 -> [CLLong]
 intList (JIntArr arr) = R.toList arr
 
 jType :: JEnv -> Assertion
