diff --git a/src/app/commands/cmd_new_file.cpp b/src/app/commands/cmd_new_file.cpp
index 2aa07692b..fab9b35bc 100644
--- a/src/app/commands/cmd_new_file.cpp
+++ b/src/app/commands/cmd_new_file.cpp
@@ -226,7 +226,7 @@ void NewFileCommand::onExecute(Context* ctx)
 
   // Create the new sprite
   std::unique_ptr<Sprite> sprite(
-    Sprite::createBasicSprite(
+    Sprite::MakeStdSprite(
       ImageSpec(colorMode, width, height, 0,
                 get_working_rgb_space_from_preferences()), ncolors));
 
diff --git a/src/app/commands/cmd_new_sprite_from_selection.cpp b/src/app/commands/cmd_new_sprite_from_selection.cpp
index 6a7049ea5..e14dd87fe 100644
--- a/src/app/commands/cmd_new_sprite_from_selection.cpp
+++ b/src/app/commands/cmd_new_sprite_from_selection.cpp
@@ -62,11 +62,13 @@ void NewSpriteFromSelectionCommand::onExecute(Context* context)
   Palette* palette = sprite->palette(site.frame());
 
   std::unique_ptr<Sprite> dstSprite(
-    Sprite::createBasicSprite(ImageSpec((ColorMode)image->pixelFormat(),
-                                        image->width(),
-                                        image->height(),
-                                        palette->size(),
-                                        sprite->colorSpace())));
+    Sprite::MakeStdSprite(
+      ImageSpec((ColorMode)image->pixelFormat(),
+                image->width(),
+                image->height(),
+                sprite->transparentColor(),
+                sprite->colorSpace()),
+      palette->size()));
 
   palette->copyColorsTo(dstSprite->palette(frame_t(0)));
 
diff --git a/src/app/doc_exporter.cpp b/src/app/doc_exporter.cpp
index 239a9be59..703251014 100644
--- a/src/app/doc_exporter.cpp
+++ b/src/app/doc_exporter.cpp
@@ -714,9 +714,10 @@ Doc* DocExporter::createEmptyTexture(const Samples& samples) const
   gfx::Size textureSize = calculateSheetSize(samples);
 
   std::unique_ptr<Sprite> sprite(
-    Sprite::createBasicSprite(
+    Sprite::MakeStdSprite(
+      // TODO calculate a proper transparent color for the sprite sheet
       ImageSpec(colorMode, textureSize.w, textureSize.h, 0,
-                colorSpace ? colorSpace: gfx::ColorSpace::MakeNone()),
+                (colorSpace ? colorSpace: gfx::ColorSpace::MakeNone())),
       maxColors));
 
   if (palette != NULL)
diff --git a/src/app/docs.cpp b/src/app/docs.cpp
index 6900d13c5..36823692c 100644
--- a/src/app/docs.cpp
+++ b/src/app/docs.cpp
@@ -1,5 +1,5 @@
 // Aseprite
-// Copyright (C) 2018  Igara Studio S.A.
+// Copyright (C) 2018-2019  Igara Studio S.A.
 // Copyright (c) 2001-2018  David Capello
 //
 // This program is distributed under the terms of
@@ -50,7 +50,7 @@ Doc* Docs::add(Doc* doc)
 Doc* Docs::add(int width, int height, doc::ColorMode colorMode, int ncolors)
 {
   std::unique_ptr<Doc> doc(
-    new Doc(Sprite::createBasicSprite(ImageSpec(colorMode, width, height), ncolors)));
+    new Doc(Sprite::MakeStdSprite(ImageSpec(colorMode, width, height), ncolors)));
   doc->setFilename("Sprite");
   doc->setContext(m_ctx); // Change the document context to add the doc in this collection
 
diff --git a/src/app/file/palette_file.cpp b/src/app/file/palette_file.cpp
index 766241ce6..aea82b0f6 100644
--- a/src/app/file/palette_file.cpp
+++ b/src/app/file/palette_file.cpp
@@ -154,7 +154,7 @@ bool save_palette(const char* filename, const Palette* pal, int columns)
 
       Context tmpContext;
       Doc* doc = tmpContext.documents().add(
-        new Doc(Sprite::createBasicSprite(
+        new Doc(Sprite::MakeStdSprite(
                   ImageSpec((pal->size() <= 256 ? doc::ColorMode::INDEXED:
                                                   doc::ColorMode::RGB),
                             w, h), pal->size())));
diff --git a/src/app/script/image_class.cpp b/src/app/script/image_class.cpp
index a6b2cd72b..3458d38b3 100644
--- a/src/app/script/image_class.cpp
+++ b/src/app/script/image_class.cpp
@@ -316,7 +316,7 @@ int Image_saveAs(lua_State* L)
       return luaL_error(L, "script doesn't have access to write file %s",
                         absFn.c_str());
 
-    std::unique_ptr<Sprite> sprite(Sprite::createBasicSprite(img->spec(), 256));
+    std::unique_ptr<Sprite> sprite(Sprite::MakeStdSprite(img->spec(), 256));
 
     std::vector<Image*> oneImage;
     sprite->getImages(oneImage);
diff --git a/src/app/script/sprite_class.cpp b/src/app/script/sprite_class.cpp
index 645e8d820..2ebc0e446 100644
--- a/src/app/script/sprite_class.cpp
+++ b/src/app/script/sprite_class.cpp
@@ -113,7 +113,7 @@ int Sprite_new(lua_State* L)
     if (spec.height() < 1)
       return luaL_error(L, "invalid height value = %d in Sprite()", spec.height());
 
-    std::unique_ptr<Sprite> sprite(Sprite::createBasicSprite(spec, 256));
+    std::unique_ptr<Sprite> sprite(Sprite::MakeStdSprite(spec, 256));
     doc.reset(new Doc(sprite.get()));
     sprite.release();
   }
diff --git a/src/doc/image_spec.h b/src/doc/image_spec.h
index 417be84cb..2332a1c48 100644
--- a/src/doc/image_spec.h
+++ b/src/doc/image_spec.h
@@ -1,5 +1,5 @@
 // Aseprite Document Library
-// Copyright (c) 2018 Igara Studio S.A.
+// Copyright (c) 2018-2019 Igara Studio S.A.
 // Copyright (c) 2016 David Capello
 //
 // This file is released under the terms of the MIT license.
@@ -20,10 +20,10 @@ namespace doc {
 
   class ImageSpec {
   public:
-    ImageSpec(ColorMode colorMode,
-              int width,
-              int height,
-              int maskColor = 0,
+    ImageSpec(const ColorMode colorMode,
+              const int width,
+              const int height,
+              const color_t maskColor = 0,
               const gfx::ColorSpacePtr& colorSpace = gfx::ColorSpace::MakeNone())
       : m_colorMode(colorMode),
         m_width(width),
diff --git a/src/doc/sprite.cpp b/src/doc/sprite.cpp
index c38a4d039..a4bc7d6be 100644
--- a/src/doc/sprite.cpp
+++ b/src/doc/sprite.cpp
@@ -1,5 +1,5 @@
 // Aseprite Document Library
-// Copyright (c) 2018 Igara Studio S.A.
+// Copyright (c) 2018-2019 Igara Studio S.A.
 // Copyright (c) 2001-2018 David Capello
 //
 // This file is released under the terms of the MIT license.
@@ -89,8 +89,8 @@ Sprite::~Sprite()
 }
 
 // static
-Sprite* Sprite::createBasicSprite(const ImageSpec& spec,
-                                  const int ncolors)
+Sprite* Sprite::MakeStdSprite(const ImageSpec& spec,
+                              const int ncolors)
 {
   // Create the sprite.
   std::unique_ptr<Sprite> sprite(new Sprite(spec, ncolors));
diff --git a/src/doc/sprite.h b/src/doc/sprite.h
index 33d2800ca..91a928bce 100644
--- a/src/doc/sprite.h
+++ b/src/doc/sprite.h
@@ -1,5 +1,5 @@
 // Aseprite Document Library
-// Copyright (c) 2018 Igara Studio S.A.
+// Copyright (c) 2018-2019 Igara Studio S.A.
 // Copyright (c) 2001-2018 David Capello
 //
 // This file is released under the terms of the MIT license.
@@ -59,8 +59,10 @@ namespace doc {
     Sprite(const ImageSpec& spec, int ncolors = 256);
     virtual ~Sprite();
 
-    static Sprite* createBasicSprite(const ImageSpec& spec,
-                                     const int ncolors = 256);
+    // Creates a new sprite with one transparent layer and one cel
+    // with an image of the size of the sprite.
+    static Sprite* MakeStdSprite(const ImageSpec& spec,
+                                 const int ncolors = 256);
 
     ////////////////////////////////////////
     // Main properties
diff --git a/src/render/render_benchmark.cpp b/src/render/render_benchmark.cpp
index c44dfba90..4b23d05f7 100644
--- a/src/render/render_benchmark.cpp
+++ b/src/render/render_benchmark.cpp
@@ -27,7 +27,7 @@ static void Bm_Render(benchmark::State& state)
   const int w = state.range(0);
   const int h = state.range(1);
 
-  Sprite* spr = Sprite::createBasicSprite(ImageSpec(ColorMode::RGB, w, h));
+  Sprite* spr = Sprite::MakeStdSprite(ImageSpec(ColorMode::RGB, w, h));
   LayerImage* lay1 = static_cast<LayerImage*>(spr->root()->firstLayer());
   LayerImage* lay2 = new LayerImage(spr);
   LayerImage* lay3 = new LayerImage(spr);
diff --git a/src/render/render_tests.cpp b/src/render/render_tests.cpp
index 323d474d0..6f3e8188a 100644
--- a/src/render/render_tests.cpp
+++ b/src/render/render_tests.cpp
@@ -1,4 +1,5 @@
 // Aseprite Document Library
+// Copyright (c) 2019 Igara Studio S.A.
 // Copyright (c) 2001-2018 David Capello
 //
 // This file is released under the terms of the MIT license.
@@ -66,7 +67,7 @@ TYPED_TEST_CASE(RenderAllModes, ImageAllTraits);
 TEST(Render, Basic)
 {
   Document* doc = new Document;
-  doc->sprites().add(Sprite::createBasicSprite(ImageSpec(ColorMode::INDEXED, 2, 2)));
+  doc->sprites().add(Sprite::MakeStdSprite(ImageSpec(ColorMode::INDEXED, 2, 2)));
 
   Image* src = doc->sprite()->root()->firstLayer()->cel(0)->image();
   clear_image(src, 2);
@@ -85,7 +86,7 @@ TYPED_TEST(RenderAllModes, CheckDefaultBackgroundMode)
   typedef TypeParam ImageTraits;
 
   Document* doc = new Document;
-  doc->sprites().add(Sprite::createBasicSprite(ImageSpec(ImageTraits::color_mode, 2, 2)));
+  doc->sprites().add(Sprite::MakeStdSprite(ImageSpec(ImageTraits::color_mode, 2, 2)));
 
   EXPECT_TRUE(!doc->sprite()->root()->firstLayer()->isBackground());
   Image* src = doc->sprite()->root()->firstLayer()->cel(0)->image();
@@ -105,7 +106,7 @@ TYPED_TEST(RenderAllModes, CheckDefaultBackgroundMode)
 TEST(Render, DefaultBackgroundModeWithNonzeroTransparentIndex)
 {
   Document* doc = new Document;
-  doc->sprites().add(Sprite::createBasicSprite(ImageSpec(ColorMode::INDEXED, 2, 2)));
+  doc->sprites().add(Sprite::MakeStdSprite(ImageSpec(ColorMode::INDEXED, 2, 2)));
   doc->sprite()->setTransparentColor(2); // Transparent color is index 2
 
   EXPECT_TRUE(!doc->sprite()->root()->firstLayer()->isBackground());
@@ -133,7 +134,7 @@ TEST(Render, DefaultBackgroundModeWithNonzeroTransparentIndex)
 TEST(Render, CheckedBackground)
 {
   Document* doc = new Document;
-  doc->sprites().add(Sprite::createBasicSprite(ImageSpec(ColorMode::INDEXED, 4, 4)));
+  doc->sprites().add(Sprite::MakeStdSprite(ImageSpec(ColorMode::INDEXED, 4, 4)));
 
   std::unique_ptr<Image> dst(Image::create(IMAGE_INDEXED, 4, 4));
   clear_image(dst.get(), 0);
@@ -185,7 +186,7 @@ TEST(Render, ZoomAndDstBounds)
   // 0 4 4
   // 0 4 4
   Document* doc = new Document;
-  doc->sprites().add(Sprite::createBasicSprite(ImageSpec(ColorMode::INDEXED, 3, 3)));
+  doc->sprites().add(Sprite::MakeStdSprite(ImageSpec(ColorMode::INDEXED, 3, 3)));
   Image* src = doc->sprite()->root()->firstLayer()->cel(0)->image();
   clear_image(src, 0);
   fill_rect(src, 1, 1, 2, 2, 4);
@@ -213,7 +214,7 @@ TEST(Render, ZoomAndDstBounds)
 TEST(Render, BugWithMultiplesOf3ZoomFactors)
 {
   Document* doc = new Document;
-  doc->sprites().add(Sprite::createBasicSprite(ImageSpec(ColorMode::RGB, 4, 4)));
+  doc->sprites().add(Sprite::MakeStdSprite(ImageSpec(ColorMode::RGB, 4, 4)));
   Image* src = doc->sprite()->root()->firstLayer()->cel(0)->image();
   clear_image(src, 0);
   draw_line(src, 0, 0, 3, 3, rgba(255, 0, 0, 255));